ASP.NET立即上手教程(11)_.Net教程
推薦:ASP.NET立即上手教程(10)在SQL數(shù)據(jù)庫中更新數(shù)據(jù) 在web應用程序中更新數(shù)據(jù)庫常常是一件棘手的事情。DataGrid控件提供了一些內建的支持,使得更新數(shù)據(jù)庫變得容易。要想編輯行記錄,DataGrid支持一個整數(shù)類型的EditItemI
訪問基于XML的數(shù)據(jù)
在本章的開始曾經(jīng)提到,DataSet被設計為不依賴于實際的數(shù)據(jù)源而抽象數(shù)據(jù)。你可以通過將實例中的數(shù)據(jù)從SQL改為XML明白這一點。DataSet支持ReadXml方法,它使用FileStream對象作為它的參數(shù)。這種情況下你讀取的文件必須包含(XML)計劃和要讀取的數(shù)據(jù)。DataSet期望在form中使用的數(shù)據(jù),如下面所示:
| 以下為引用的內容: <DocumentElement> <TableName> <ColumnName1>column value</ColumnName1> <ColumnName2>column value</ColumnName2> <ColumnName3>column value</ColumnName3> <ColumnName4>column value</ColumnName4> </TableName> <TableName> <ColumnName1>column value</ColumnName1> <ColumnName2>column value</ColumnName2> <ColumnName3>column value</ColumnName3> <ColumnName4>column value</ColumnName4> </TableName> </DocumentElement> |
每個TableName段對應表中的一行/一條記錄。下面的例子使用DataSet的ReadXml方法從XML文件讀取計劃和數(shù)據(jù)。注意:當數(shù)據(jù)讀入DataSet后,使用起來就與SQL數(shù)據(jù)沒有區(qū)別--- DataGrid就像綁定SQL數(shù)據(jù)一樣綁定它,就象下面的例子:
也可以使用DataSet的ReadXmlData和ReadXmlSchema方法分別讀取計劃和數(shù)據(jù),就象下面的例子。
DataSet除了支持讀取XML數(shù)據(jù)的方法外,也支持寫入XML數(shù)據(jù)。下面的例子實現(xiàn)了一個工具,用來查詢SQL數(shù)據(jù),將結果寫為XML數(shù)據(jù)或者計劃文本。
本章小結
通用語言運行時刻(CLR)管理數(shù)據(jù)訪問的應用程序接口以一種一致的方式來提取和表示數(shù)據(jù),而不依賴于實際的數(shù)據(jù)源,如SQL Server、OLEDB、XML等等。
為了讓ASP.NET頁面能夠訪問SQL數(shù)據(jù)庫,必須在頁面中引入System.Data和System.Data.SqlClient名稱空間。如果訪問OLEDB數(shù)據(jù)庫,需要引入System.Data和System.Data.OleDb名稱空間。
從SQL查詢組裝數(shù)據(jù)集(dataset),包括建立連接(SqlConnection),關聯(lián)包含查詢語句的SqlDataAdapter對象,然后用SqlDataAdapter的fill方法填充數(shù)據(jù)集(dataset)幾個步驟。
DataGrid控件支持DataSource屬性,該屬性使用Ienumerable或Icollection類型。你可以通過給DataSet的 DefaultView屬性(類型為DataView)賦值,將這些類型設置為SQL查詢的結果。
SqlDataAdapter包含參數(shù)集合,可以將值替換為變量標志符 (名字前加一個"@")。
當執(zhí)行不返回結果的SQL命令,例如插入、更新和刪除,可以用SqlCommand代替SqlDataAdapter。通過調用ExecuteNonQuery(返回起作用的記錄的數(shù))方法來執(zhí)行命令。
使用SqlCommand的時候,必須明確的打開SqlConnection(SqlDataAdapter自動處理打開連接)。頁面執(zhí)行完畢之前,記得一定要關閉SqlConnection。否則,會在垃圾回收功能處理頁面實例的時候,不知不覺耗盡連接限制。
為了允許記錄被編輯,DataGrid支持一個整數(shù)類型的EditItemIndex屬性,它可以指出表格中的哪一行被編輯。設置了該屬性之后,DataGrid將該行內容用輸入框(即可以編輯)來代替文本標簽顯示。
DataGrid提供DataKeyField屬性,能夠為主鍵設置字段名。在UpdateCommand綁定的事件處理中,你可以從DataGrid的數(shù)據(jù)鍵集合取得主鍵的名稱。
使用DataGrid 中的BoundColumn控件可以讓你完全控制列的狀態(tài),包括ReadOnly屬性。
使用DataGrid中的TemplateColumn控件可以讓你完全控制列的內容
ButtonColumn(按鈕列)可以用來在該列為每一行提供一個按鈕控件,它可以關聯(lián)事件。
HyperLinkColumn(超鏈接列)可以添加到DataGrid的列集合,當該鏈接被點擊的時候,可以定向到其他頁面。
當DataGrid的AllowSorting(允許排序)屬性被設為true,它在列標題位置提供了超鏈接,用以激活Sort命令,并返回給表格。當用戶點擊這個(用來排序的)鏈接的時候,所調用的事件句柄可以在DataGrid的OnSortCommand屬性中設定。
DataSet支持ReadXml、ReadXmlData和ReadXmlSchema方法,使用FileStream作為參數(shù),它可以用來從XML文件組裝DataSet。
使用存儲過程可以減少應用程序中數(shù)據(jù)庫的負荷。
由于這一部分的內容比較多,所以我們用三個章節(jié),包括9、10、11,才將asp.net的服務器端數(shù)據(jù)訪問全部講完。從后面的章節(jié)開始,講解數(shù)據(jù)訪問和用戶訂制。敬請期待...
分享:ASP.NET立即上手教程(9)服務器端數(shù)據(jù)介紹 數(shù)據(jù)訪問是現(xiàn)實世界中應用程序的核心內容。Asp.net提供了一套豐富的控件,他與CLR(通用語言運行庫)提供的用來管理數(shù)據(jù)訪問的APIs(應用程序接口)緊密結合。本章預排幾個
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-ASP.NET立即上手教程(11)
。