首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 隨機讀取 Access 資料庫記錄:克服 ADO 快取機制

     編輯:關於ASP.NET

【導讀】因使用 ADO 存取 Access 資料庫會有快取,在隨機提取資料庫資料時,例如:sql="select top 10 Title,objectGuid from Document Order By Rnd(id)",將得不到隨機記錄。本文給出範例可克服此缺陷,實現資料庫隨機讀取。

因使用 ADO 存取 Access 資料庫會有快取,在隨機提取資料庫資料時,例如:sql="select top 10 Title,objectGuid from Document Order By Rnd(id)",將得不到隨機記錄。下列範例可克服此缺陷,實現資料庫隨機讀取。

C# 範例:

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load( object sender, EventArgs e )
{
Random rnd = new Random(unchecked((int)DateTime.Now.Ticks));
int intRandomNumber = rnd.Next();
string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|aspxWeb.mdb;Persist Security Info=True";
string sql = "select top 10 Title,objectGuid from Document Order By Rnd(" + (-1 * intRandomNumber) + "*id)";
System.Data.OleDb.OleDbConnection cn = new System.Data.OleDb.OleDbConnection(ConnectionString);
cn.Open();
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(sql, cn);
System.Data.OleDb.OleDbDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();
cmd.Dispose();
cn.Dispose();
cn = null;
}
</script>
<html xmlns="https://www.w3.org/1999/xhtml">
<head runat="server">
<title>隨機讀取Access資料庫記錄</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="objectGuid" HeaderText="文章" DataTextField="Title" DataNavigateUrlFormatString="https://dotnet.aspx.cc/article/{0}/read.aspx" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved