เนื่องจากแคชของชุดบันทึกฐานข้อมูล Access จึงไม่สามารถรับบันทึกแบบสุ่มจากฐานข้อมูล Access จากโค้ดได้ จึงจำเป็นต้องใช้คำสั่ง SQL แบบสุ่มเพื่อกำจัดแคช
นี่คือตัวอย่าง:
ดูตัวอย่าง http://dotnet.aspx.cc/Exam/GetRandom.aspx
<%@ Page Language="C#" Debug="true" %>
<%@ นำเข้าเนมสเปซ = "System.Data" %>
<%@ นำเข้าเนมสเปซ = "System.Data.OleDb" %>
<title>รับบันทึกฐานข้อมูล Access แบบสุ่ม</title>
<script runat="เซิร์ฟเวอร์">
เป็นโมฆะ Page_Load (วัตถุ src, EventArgs e)
-
ถ้า(!IsPostBack)
-
สตริง MyConnString = "ผู้ให้บริการ=Microsoft.Jet.OleDB.4.0;แหล่งข้อมูล="
+ Server.MapPath("aspxWeb.mdb.ascx");
สุ่ม R = สุ่มใหม่ ();
int intRandomNumber = R.Next(1,1000);
string sql = "เลือก 10 id อันดับแรกเป็นซีเรียลนัมเบอร์, Title As title จาก Document Order By Rnd("
+ (-1 * intRandomNumber).ToString() + "*id)";
OleDbConnection MyConnection = OleDbConnection ใหม่ (MyConnString);
MyConnection.Open();
OleDbCommand cmd = ใหม่ OleDbCommand(sql,MyConnection);
OleDbDataReader dr = cmd.ExecuteReader();
DataGrid1.DataSource = ดร.
DataGrid1.DataBind();
cmd.ทิ้ง();
MyConnection.Close();
MyConnection.Dispose();
การเชื่อมต่อของฉัน = null;
-
}
</สคริปต์>
<ฟอร์ม runat=เซิร์ฟเวอร์>
<asp:DataGrid id="DataGrid1" แนวนอนAlign="ศูนย์"
ความกว้าง = "600px" runat = "เซิร์ฟเวอร์" ขนาดตัวอักษร = "9pt">
<AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
<HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizonAlign="Center" />
</asp:DataGrid>
</แบบฟอร์ม>