Reader's Digest

Digest your Internet

随机得到Access数据库记录

Written By: dch1 - May• 01•08
由于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=”server”>
  void Page_Load(Object src,EventArgs e)
  {
  if(!IsPostBack)
   {
   string MyConnString = “rovider=Microsoft.Jet.OleDB.4.0;Data Source=”
   + Server.MapPath(“aspxWeb.mdb.ascx”);
   Random R = new Random();
   int intRandomNumber = R.Next(1,1000);
   
   string sql = “select top 10 id As 序号,Title As 标题 from Document Order By Rnd(”
   + (-1 * intRandomNumber).ToString() + “*id)”;
   OleDbConnection MyConnection = new 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>
  <form runat=server>
  <aspataGrid id=”DataGrid1″ HorizontalAlign=”Center”
   Width=”600px” runat=”server” Font-Size=”9pt”>
   <AlternatingItemStyle BackColor=”#EEEEEE”></AlternatingItemStyle>
   <HeaderStyle BackColor=”#AAAADD” Font-Bold=”True” HorizontalAlign=”Center” />
  </aspadtaGrid>
  </form>

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.