Из-за кеша набора записей базы данных Access невозможно получить случайные записи из базы данных Access из кода. Для устранения кеша необходимо использовать случайные операторы SQL.
Вот пример:
просмотрите пример http://dotnet.aspx.cc/Exam/GetRandom.aspx
<%@ Page Language="C#" Debug="true" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<title>Получать записи базы данных Access случайным образом</title>
<script runat="сервер">
void Page_Load (источник объекта, EventArgs e)
{
если(!Испостбак)
{
строка MyConnString = "Provider=Microsoft.Jet.OleDB.4.0;Источник данных="
+ Server.MapPath("aspxWeb.mdb.ascx");
Случайный R = новый Случайный();
int intRandomNumber = R.Next(1,1000);
string sql = "выбрать первые 10 идентификаторов в качестве серийного номера, заголовок в качестве заголовка из заказа документа по Rnd("
+ (-1 * intRandomNumber).ToString() + "*id)";
OleDbConnection MyConnection = новый OleDbConnection (MyConnString);
МоеСоединение.Открыть();
OleDbCommand cmd = новый OleDbCommand (sql, MyConnection);
OleDbDataReader dr = cmd.ExecuteReader();
DataGrid1.DataSource = др;
DataGrid1.DataBind();
cmd.Dispose();
МоеСоединение.Закрыть();
МоеСоединение.Расположить();
МоеСоединение = ноль;
}
}
</скрипт>
<форма runat=сервер>
<asp:DataGrid id="DataGrid1" HorizontalAlign="Center"
Ширина="600px" runat="сервер" Font-Size="9pt">
<AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
<HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizontalAlign="Center" />
</asp:DataGrid>
</форма>