由于Access数据库记录集缓存的原因,从代码里得到Access数据库随机记录是得不到,需要用随机SQL语句的办法来消除缓存。 下面就是例子:" ]2 p/ T! M3 i; @% y
voidPage_Load(Objectsrc,EventArgse)# I. H" ]/ s2 H# z- J
{ M$ v& B8 K8 [
if(!IsPostBack)6 B& z( `+ u4 n' } D: l
{
/ n7 H* A& W8 }$ Q( T- B stringMyConnString=“Provider=Microsoft.Jet.OleDB.4.0;DataSource=”. Z$ c2 z5 [" b( X4 b3 g
+Server.MapPath(”aspxWeb.mdb.ascx”);
) M' p2 }. }6 J8 Z1 r. { RandomR=newRandom();
. M- @! W7 s& J intintRandomNumber=R.Next(1,1000);; N: h2 r9 J8 J# e; ]. z) Y
stringsql=“selecttop10idAs序号,TitleAs标题fromDocumentOrderByRnd(”
; ?; f5 i5 ~4 R5 m5 s +(-1*intRandomNumber).ToString()+“*id)”;$ D/ B& l; a9 f' O
OleDbConnectionMyConnection=newOleDbConnection(MyConnString);& U+ J2 X T( j' H+ ]
MyConnection.Open();
9 {. q' [9 R2 @& S; ^" R" @ OleDbCommandcmd=newOleDbCommand(sql,MyConnection);5 X2 D* m( e( ~9 X. w/ e
OleDbDataReaderdr=cmd.ExecuteReader();8 w, a& `2 x' }1 w% O8 F4 r# l3 {
DataGrid1.DataSource=dr;
2 {: f$ k1 D/ O4 X, x' K7 D) C! ^ DataGrid1.DataBind();# `* j" c& M9 k7 _' l$ r
cmd.Dispose();! G+ g( s6 G4 M) [" K0 \6 }
MyConnection.Close();
. J9 V. \; c: d, P Y$ R MyConnection.Dispose();
9 L& l" J/ q9 Q8 h8 i' z2 k MyConnection=null; N, J) f/ j0 N4 I* c
}
7 ]4 t0 R2 @7 _5 V' |, ]3 I }
; m# @; a+ a& n( V; ^9 O3 | |