科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道ASP.NET 2.0中随机读取Access数据库记录

ASP.NET 2.0中随机读取Access数据库记录

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

由于使用ADO访问Access数据库会有缓存,这在随机提取数据库数据时,例如:sql="select top 10 Title,objectGuid from Document Order By Rnd(id)",将得不到随机记录,本文中给出的例子可以克服这一缺陷,实现数据库的随机读取。

作者:孟宪会 来源:孟子e章 2007年9月9日

关键字: ASP.NET Access 记录

  • 评论
  • 分享微博
  • 分享邮件

由于使用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" "http://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="http://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=

"http://dotnet.aspx.cc/article/{0}/read.aspx" />

</Columns>

</asp:GridView>

</div>

</form>

</body>

</html>

VB.NET:

<%@ Page Language="VB" Debug="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim TimeString As String = DateTime.Now.Ticks.ToString()
    Dim a As UInt32 = UInt32.Parse(TimeString.Substring(TimeString.Length - 8, 8))
    Dim b As Int32 = BitConverter.ToInt32(BitConverter.GetBytes(a), 0)
    Dim rnd As Random = New Random(b)
    Dim intRandomNumber As Integer = rnd.Next
    Response.Write(intRandomNumber)
    Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data       Source=|DataDirectory|\aspxWeb.mdb;Persist Security Info=True"
    Dim sql As String = "select top 10 Title,objectGuid from Document       Order By Rnd(" + (-1 * intRandomNumber).ToString() + "*id)"
    Dim cn As System.Data.OleDb.OleDbConnection =       New System.Data.OleDb.OleDbConnection(ConnectionString)
    cn.Open()
    Dim cmd As System.Data.OleDb.OleDbCommand =       New System.Data.OleDb.OleDbCommand(sql, cn)
    Dim dr As System.Data.OleDb.OleDbDataReader =       cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
    GridView1.DataSource = dr
    GridView1.DataBind()
    dr.Close()
    cmd.Dispose()
    cn.Dispose()
    cn = Nothing
  End Sub
</script>



  <title>随机读取Access数据库记录</title>


  <form id="form1" runat="server">
    <div>
      <asp:GridView ID="GridView1" runat="server"          AutoGenerateColumns="false">
        <Columns>
          <asp:HyperLinkField DataNavigateUrlFields="objectGuid"              HeaderText="文章" DataTextField="Title"
            DataNavigateUrlFormatString=              "http://dotnet.aspx.cc/article/{0}/read.aspx" />
        </Columns>
      </asp:GridView>
    </div>
  </form>

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章