Access データベース レコード セットのキャッシュのため、コードから Access データベースからランダムなレコードを取得することはできません。キャッシュを削除するにはランダム SQL ステートメントを使用する必要があります。
以下に例を示します。 例
を表示http://dotnet.aspx.cc/Exam/GetRandom.aspx
<%@ Page Language="C#" Debug="true" %>
<%@ import 名前空間="System.Data" %>
<%@ import 名前空間="System.Data.OleDb" %>
<title>Access データベース レコードをランダムに取得します</title>
<script runat="サーバー">
void Page_Load(Object src,EventArgs e)
{
if(!IsPostBack)
{
string MyConnString = "プロバイダ=Microsoft.Jet.OleDB.4.0;データ ソース="
+ Server.MapPath("aspxWeb.mdb.ascx");
ランダム R = 新しいランダム();
int intRandomNumber = R.Next(1,1000);
string string sql = "先頭 10 の ID をシリアル番号として、タイトルを Document Order By Rnd("
+ (-1 * intRandomNumber).ToString() + "*id)";
OleDbConnection MyConnection = 新しい OleDbConnection(MyConnString);
MyConnection.Open();
OleDbCommand cmd = new OleDbCommand(sql,MyConnection);
OleDbDataReader dr = cmd.ExecuteReader();
DataGrid1.DataSource = dr;
DataGrid1.DataBind();
cmd.Dispose();
MyConnection.Close();
MyConnection.Dispose();
MyConnection = null;
}
}
</script>
<フォーム runat=サーバー>
<asp:DataGrid id="DataGrid1" horizontalAlign="Center"
width="600px" runat="server" Font-Size="9pt">
<AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
<HeaderStyle BackColor="#AAAADD" Font-Bold="True" horizontalAlign="Center" />
</asp:データグリッド>
</form>