ASP.NET立即上手教程(11)__.net

來源:互聯網
上載者:User
訪問基於XML的資料
在本章的開始曾經提到,DataSet被設計為不依賴於實際的資料來源而抽象資料。你可以通過將執行個體中的資料從SQL改為XML明白這一點。DataSet支援ReadXml方法,它使用FileStream對象作為它的參數。這種情況下你讀取的檔案必須包含(XML)計劃和要讀取的資料。DataSet期望在form中使用的資料,如下面所示:
<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檔案讀取計劃和資料。注意:當資料讀入DataSet後,使用起來就與SQL資料沒有區別--- DataGrid就像綁定SQL資料一樣綁定它,就象下面的例子:
C# DataGrid17.aspx
[運行] | [原始碼]
也可以使用DataSet的ReadXmlData和ReadXmlSchema方法分別讀取計劃和資料,就象下面的例子。
C# DataGrid18.aspx
[運行] | [原始碼]
DataSet除了支援讀取XML資料的方法外,也支援寫入XML資料。下面的例子實現了一個工具,用來查詢SQL資料,將結果寫為XML資料或者計劃文本。
C# XMLGen.aspx
[運行] | [原始碼]

本章小結
通用語言運行時刻(CLR)管理資料訪問的應用程式介面以一種一致的方式來提取和表示資料,而不依賴於實際的資料來源,如SQL Server、OLEDB、XML等等。

為了讓ASP.NET頁面能夠訪問SQL資料庫,必須在頁面中引入System.Data和System.Data.SqlClient名稱空間。如果訪問OLEDB資料庫,需要引入System.Data和System.Data.OleDb名稱空間。

從SQL查詢組裝資料集(dataset),包括建立串連(SqlConnection),關聯包含查詢語句的SqlDataAdapter對象,然後用SqlDataAdapter的fill方法填充資料集(dataset)幾個步驟。

DataGrid控制項支援DataSource屬性,該屬性使用Ienumerable或Icollection類型。你可以通過給DataSet的 DefaultView屬性(類型為DataView)賦值,將這些類型設定為SQL查詢的結果。

SqlDataAdapter包含參數集合,可以將值替換為變數標誌符 (名字前加一個"@")。

當執行不返回結果的SQL命令,例如插入、更新和刪除,可以用SqlCommand代替SqlDataAdapter。通過調用ExecuteNonQuery(返回起作用的記錄的數)方法來執行命令。

使用SqlCommand的時候,必須明確的開啟SqlConnection(SqlDataAdapter自動處理開啟串連)。頁面執行完畢之前,記得一定要關閉SqlConnection。否則,會在記憶體回收功能處理頁面執行個體的時候,不知不覺耗盡串連限制。

為了允許記錄被編輯,DataGrid支援一個整數類型的EditItemIndex屬性,它可以指出表格中的哪一行被編輯。設定了該屬性之後,DataGrid將該行內容用輸入框(即可以編輯)來代替文字標籤顯示。

DataGrid提供DataKeyField屬性,能夠為主鍵設定欄位名。在UpdateCommand綁定的事件處理中,你可以從DataGrid的資料鍵集合取得主鍵的名稱。

使用DataGrid 中的BoundColumn控制項可以讓你完全控制列的狀態,包括ReadOnly屬性。

使用DataGrid中的TemplateColumn控制項可以讓你完全控制列的內容

ButtonColumn(按鈕列)可以用來在該列為每一行提供一個按鈕控制項,它可以關聯事件。

HyperLinkColumn(超連結列)可以添加到DataGrid的列集合,當該連結被點擊的時候,可以定向到其他頁面。

當DataGrid的AllowSorting(允許排序)屬性被設為true,它在欄位標題位置提供了超連結,用以啟用Sort命令,並返回給表格。當使用者點擊這個(用來排序的)連結的時候,所調用的事件控制代碼可以在DataGrid的OnSortCommand屬性中設定。

DataSet支援ReadXml、ReadXmlData和ReadXmlSchema方法,使用FileStream作為參數,它可以用來從XML檔案組裝DataSet。

使用預存程序可以減少應用程式中資料庫的負荷。

由於這一部分的內容比較多,所以我們用三個章節,包括9、10、11,才將asp.net的伺服器端資料訪問全部講完。從後面的章節開始,講解資料訪問和使用者訂製。敬請期待...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.