Debido al caché del conjunto de registros de la base de datos de Access, no es posible obtener registros aleatorios de la base de datos de Access a partir del código. Es necesario utilizar declaraciones SQL aleatorias para eliminar el caché.
A continuación se muestra un ejemplo:
Vea el ejemplo http://dotnet.aspx.cc/Exam/GetRandom.aspx
<%@ Page Language="C#" Debug="true" %>
<%@ importar espacio de nombres="System.Data" %>
<%@ importar espacio de nombres="System.Data.OleDb" %>
<title>Obtener registros de la base de datos de Access de forma aleatoria</title>
<script runat="servidor">
void Page_Load(Objeto src,EventArgs e)
{
si(!IsPostBack)
{
cadena MyConnString = "Provider=Microsoft.Jet.OleDB.4.0;Data Source="
+ Servidor.MapPath("aspxWeb.mdb.ascx");
Aleatorio R = nuevo Aleatorio();
int intRandomNumber = R.Next(1,1000);
string sql = "seleccione los 10 principales ID como número de serie, Título como título del orden del documento por Rnd("
+ (-1 * intNumeroAleatorio).ToString() + "*id)";
OleDbConnection MyConnection = nueva OleDbConnection(MyConnString);
MiConexión.Open();
OleDbCommand cmd = nuevo OleDbCommand(sql,MyConnection);
OleDbDataReader dr = cmd.ExecuteReader();
DataGrid1.DataSource = dr;
DataGrid1.DataBind();
cmd.Dispose();
MiConexión.Cerrar();
MiConexión.Dispose();
MiConexión = nulo;
}
}
</script>
<formulario runat=servidor>
<asp:DataGrid id="DataGrid1" HorizontalAlign="Centro"
Ancho="600px" runat="servidor" Font-Size="9pt">
<AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
<HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizontalAlign="Centro" />
</asp:DataGrid>
</formulario>