程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 親密接觸ASP.Net(7)

親密接觸ASP.Net(7)

編輯:ASP技巧
上一節,我們簡單的講了一下數據庫的應用,而我們沒有具體說明執行語句如何用於顯示。呵呵,是留在這一章節中講的。這裡我們必須得了解一下DataReader,DataSet和DataGrid控件,DataGrid是顯示控件,大家自已去看它相關的應用,我們在這裡不哆嗦,DataReader和DataSet都可以用來儲存數據內容,不過DataReader只能儲存查詢的結果,DataSet就相對來說復雜多了,他的功能很強大,我們一步步來講,這一節還講不完,我們這一節只講其關於儲存數據庫的功能,呵呵,為了和DataReader的講解嘛.

講數據庫,首先得有用的數據才行,我這裡隨便搞了一個數據庫,名為Company,再加了幾條數據進去

DataReader

DataReader看名字就知道了,就是讀取數據,我們可以通過Command的Execute方法,將取得的數據存入DataReader,DataReader有很多方法和屬性,常用的是Read,這裡我也不想多講.我們還是先看看它的具體應用吧。


<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SQL" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
   //定義語句 
   string mySelectQuery = "SELECT * from Company";
   string myConnString="server=localhost;uid=sa;pwd=123456;database=ASPcn";
   
   //聯結
   SQLConnection myConnection = new SQLConnection(myConnString);
   SQLCommand myCommand = new SQLCommand(mySelectQuery,myConnection);
   myConnection.Open();
   //定義DataReader
   SQLDataReader myDataReader;
   //賦與DataReader以結果
   myCommand.Execute(out myDataReader);

   //將DataReader與DataGrid進行捆綁
   show.DataSource=myDataReader;
   show.DataBind();

   //關閉
   myDataReader.Close();
   myConnection.Close();

}
</script>
<Html>
<head>
<title></title>
</head>
<body>
<ASP:DataGrid id="show" runat=server HeaderStyle-BackColor="#aaaadd" />
</body>
</Html>


在其中我們看到DataReader的定義

SQLDataReader myDataReader;

以及他的賦值

myCommand.Execute(out myDataReader);

完成這兩步後,我們就將執行後的結果儲存到DataReader中了。

最後我們就將其捆綁(Bind)到DataGrid控件上去,如果不明白捆綁是什麼,看本系例的文章吧  

顯示如下: id  Name  Age  Sex  Wage  
1  飛刀  20  男  1400  
2  張三  23  男  5000  
3  李四  47  男  7786  
4  王五  20  男  6788  
5  苗翠花  30  女  45676  
6  方世玉  20  男  4656  


另外告訴大家,如果我們需要取得DataReader儲存特定字段的值可以使用myDataReader["fIEldname"]類似的方法取得下面是個簡單的例子

.......
while (myDataReader.Read())
{
    Response.Write("<tr>");
    Response.Write("<td>"+myDataReader["Name"].ToString+"</td>");
    Response.Write("</tr>");
}
.......

DataSet

哇,這對於初學者來說,是個很難理解的東東啊。怎麼說才好呢?我們可以把DataSet看成一個無聯結的RecordSet(這個大家應當熟悉吧).DataSet中儲存有數據,而且這個就像是一個數據庫,裡面存在表(Tables),列(Columns),關聯(relationships),限制(constrains)以及數據。這一些和數據庫沒有什麼兩樣,但是他不是數據庫(怎麼越說越糊塗),我們可以先在DataSet中操作數據(添加,刪除,更新),最後再一並提交到數據庫去操作。而且DataSet中的數據不光可以來自於數據庫,還可以是XML以及其它的數據,甚至用戶的輸入也能直接存入DataSet

我們這裡只談DataSet對於數據的作用,呵呵,而且還只是數據的顯示。其它的應用,下節再說,我們還是先看看一段例子吧。

 

<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SQL" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
   //定義語句 
   string mySelectQuery = "SELECT * from Company";
   string myConnString="server=localhost;uid=sa;pwd=123456;database=ASPcn";
   
   //聯結
   SQLConnection myConnection = new SQLConnection(myConnString);
   SQLDataSetCommand myDataSetCommand = new SQLDataSetCommand(mySelectQuery,myConnection);
   DataSet myDataSet = new DataSet();

   //將結果儲存入DataSet
   myDataSetCommand.FillDataSet(myDataSet,"Company");

   show.DataSource=myDataSet.Tables["Company"].DefaultVIEw;
   show.DataBind();


}
</script>
<Html>
<head>
<title></title>
</head>
<body>
<ASP:DataGrid id="show" runat=server HeaderStyle-BackColor="#aaaadd" />
</body>
</Html>


上面的顯示的結果和前面的一樣,我們來解釋一下代碼

此處我們使用了DataSetCommand,我們就是需要通過它的FillDataSet方法,將查詢表Company的結果存入DataSet,具體的操作方法就是:

myDataSetCommand.FillDataSet(myDataSet,"Company");

以後的就是捆綁,也沒有什麼好說的了。只是要注意一下,DataSet是它的DataVIEw與DataGrid進行Bind,這一原因我在前面的文章中已經說了。不懂的大家可以翻到前面看看,多多看看源程序。

另外我們可以向一個DataSet中加入多個表的查詢結果,這些結果的Connection都可以不同,這個實現起來很簡單,大家可以自已動手去做
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved