上一節,我們簡單的講了一下資料庫的應用,而我們沒有具體說明執行語句如何用於顯示。呵呵,是留在這一章節中講的。這裡我們必須得瞭解一下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) { file://定義語句 string mySelectQuery = "SELECT * from Company"; string myConnString="server=localhost;uid=sa;pwd=123456;database=aspcn"; file://聯結 SQLConnection myConnection = new SQLConnection(myConnString); SQLCommand myCommand = new SQLCommand(mySelectQuery,myConnection); myConnection.Open(); file://定義DataReader SQLDataReader myDataReader; file://賦與DataReader以結果 myCommand.Execute(out myDataReader); file://將DataReader與DataGrid進行捆綁 show.DataSource=myDataReader; show.DataBind(); file://關閉 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) { file://定義語句 string mySelectQuery = "SELECT * from Company"; string myConnString="server=localhost;uid=sa;pwd=123456;database=aspcn"; file://聯結 SQLConnection myConnection = new SQLConnection(myConnString); SQLDataSetCommand myDataSetCommand = new SQLDataSetCommand(mySelectQuery,myConnection); DataSet myDataSet = new DataSet(); file://將結果儲存入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都可以不同,這個實現起來很簡單,大家可以自已動手去做。 |