随机显示数据库记录

System名称空间有一个Random类,用来产生随机数。本文就介绍利用这个Random类来随机显示数据库记录。
  
  Random类有一个重载方法叫Next,它可以产生随机数,它允许输入两个参数,以产生这两个数之间的随机数。例如:
  
  Random R = new Random();
  Random.Next(1,100);
  
  
  
  将会在产生1-100之间的随机数。
  
  要随机显示数据库记录,需要知道数据库最大记录数和最小记录数。
  
  int RecNo=0,MaxRecNo,MinRecNo;
  Random R = new Random();
  SqlDataReader DR;
  SqlConnection CN = newSqlConnection("Server=Mengxianhui;Database=Northwind;uid=sa");
  CN.Open();
  SqlCommand Cmd = new SqlCommand("select Max(ProductId) as MaxProdid ,Min(ProductId) as MinProdId from Products",CN);
  DR= Cmd.ExecuteReader();
  DR.Read();
  MaxRecNo = (int)DR["MaxProdid"] ;
  MinRecNo = (int)DR["MinProdid"] ;
  RecNo = R.Next(MinRecNo,MaxRecNo);
  
  
  然后得到随机得到记录。
  
  Cmd = new SqlCommand("select * from Products Where ProductID = " + RecNo,CN);
  DR = Cmd.ExecuteReader();
  DR.Read();
  Response.Write("今日的产品名称: " +DR["ProductID"] + " - " + DR["ProductName"] + "");
  CN.Close();
  
  完整代码如下:
  <%@ Page Language="C#" Debug="true" %>
  <%@Import NameSpace="System.Data.SqlClient"%>
  <%@Import NameSpace="System.Data"%>
  <html>
  <head>
  <title>随机显示数据库记录</title>
  </head>
  <body>
  <script runat="server">
  void Page_Load(object Sender,EventArgs E)
  {
  int RecNo=0,MaxRecNo,MinRecNo;
  Random R = new Random();
  SqlDataReader DR;
  //**** 连接到数据库
  SqlConnection CN = new SqlConnection("Server=Mengxianhui;Database=Northwind;uid=sa");
  CN.Open();
  //**** 找到最大的和最小的ID号
  SqlCommand Cmd = new SqlCommand("select Max(ProductId) as MaxProdid ,Min(ProductId) as MinProdId from Products",CN);
  DR= Cmd.ExecuteReader();
  DR.Read();
  MaxRecNo = (int)DR["MaxProdid"];
  MinRecNo = (int)DR["MinProdid"];
  DR.Close();
  //**** 创建一个随机数
  RecNo = R.Next(MinRecNo,MaxRecNo);
  //**** 显示随机记录信息。
  Cmd = new SqlCommand("select * from Products Where ProductID = " + RecNo,CN);
  DR = Cmd.ExecuteReader();
  DR.Read();
  Response.Write("今日的产品名称: <b>" +DR["ProductID"] + " - " + DR["ProductName"] + "</b>");
  DR.Close();
  CN.Close();
  }
  </script>
  </body>
  </html> 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值