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>