ASP.NET立即上手教程(11)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

      推薦:ASP.NET立即上手教程(10)
      在SQL數(shù)據(jù)庫(kù)中更新數(shù)據(jù) 在web應(yīng)用程序中更新數(shù)據(jù)庫(kù)常常是一件棘手的事情。DataGrid控件提供了一些內(nèi)建的支持,使得更新數(shù)據(jù)庫(kù)變得容易。要想編輯行記錄,DataGrid支持一個(gè)整數(shù)類型的EditItemI

      訪問(wèn)基于XML的數(shù)據(jù)

      在本章的開始曾經(jīng)提到,DataSet被設(shè)計(jì)為不依賴于實(shí)際的數(shù)據(jù)源而抽象數(shù)據(jù)。你可以通過(guò)將實(shí)例中的數(shù)據(jù)從SQL改為XML明白這一點(diǎn)。DataSet支持ReadXml方法,它使用FileStream對(duì)象作為它的參數(shù)。這種情況下你讀取的文件必須包含(XML)計(jì)劃和要讀取的數(shù)據(jù)。DataSet期望在form中使用的數(shù)據(jù),如下面所示:

      以下為引用的內(nèi)容:
      <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>

      每個(gè)TableName段對(duì)應(yīng)表中的一行/一條記錄。下面的例子使用DataSet的ReadXml方法從XML文件讀取計(jì)劃和數(shù)據(jù)。注意:當(dāng)數(shù)據(jù)讀入DataSet后,使用起來(lái)就與SQL數(shù)據(jù)沒(méi)有區(qū)別--- DataGrid就像綁定SQL數(shù)據(jù)一樣綁定它,就象下面的例子:

      也可以使用DataSet的ReadXmlData和ReadXmlSchema方法分別讀取計(jì)劃和數(shù)據(jù),就象下面的例子。

      DataSet除了支持讀取XML數(shù)據(jù)的方法外,也支持寫入XML數(shù)據(jù)。下面的例子實(shí)現(xiàn)了一個(gè)工具,用來(lái)查詢SQL數(shù)據(jù),將結(jié)果寫為XML數(shù)據(jù)或者計(jì)劃文本。

      本章小結(jié)

      通用語(yǔ)言運(yùn)行時(shí)刻(CLR)管理數(shù)據(jù)訪問(wèn)的應(yīng)用程序接口以一種一致的方式來(lái)提取和表示數(shù)據(jù),而不依賴于實(shí)際的數(shù)據(jù)源,如SQL Server、OLEDB、XML等等。

      為了讓ASP.NET頁(yè)面能夠訪問(wèn)SQL數(shù)據(jù)庫(kù),必須在頁(yè)面中引入System.Data和System.Data.SqlClient名稱空間。如果訪問(wèn)OLEDB數(shù)據(jù)庫(kù),需要引入System.Data和System.Data.OleDb名稱空間。

      從SQL查詢組裝數(shù)據(jù)集(dataset),包括建立連接(SqlConnection),關(guān)聯(lián)包含查詢語(yǔ)句的SqlDataAdapter對(duì)象,然后用SqlDataAdapter的fill方法填充數(shù)據(jù)集(dataset)幾個(gè)步驟。

      DataGrid控件支持DataSource屬性,該屬性使用Ienumerable或Icollection類型。你可以通過(guò)給DataSet的 DefaultView屬性(類型為DataView)賦值,將這些類型設(shè)置為SQL查詢的結(jié)果。

      SqlDataAdapter包含參數(shù)集合,可以將值替換為變量標(biāo)志符 (名字前加一個(gè)"@")。

      當(dāng)執(zhí)行不返回結(jié)果的SQL命令,例如插入、更新和刪除,可以用SqlCommand代替SqlDataAdapter。通過(guò)調(diào)用ExecuteNonQuery(返回起作用的記錄的數(shù))方法來(lái)執(zhí)行命令。

      使用SqlCommand的時(shí)候,必須明確的打開SqlConnection(SqlDataAdapter自動(dòng)處理打開連接)。頁(yè)面執(zhí)行完畢之前,記得一定要關(guān)閉SqlConnection。否則,會(huì)在垃圾回收功能處理頁(yè)面實(shí)例的時(shí)候,不知不覺(jué)耗盡連接限制。

      為了允許記錄被編輯,DataGrid支持一個(gè)整數(shù)類型的EditItemIndex屬性,它可以指出表格中的哪一行被編輯。設(shè)置了該屬性之后,DataGrid將該行內(nèi)容用輸入框(即可以編輯)來(lái)代替文本標(biāo)簽顯示。

      DataGrid提供DataKeyField屬性,能夠?yàn)橹麈I設(shè)置字段名。在UpdateCommand綁定的事件處理中,你可以從DataGrid的數(shù)據(jù)鍵集合取得主鍵的名稱。

      使用DataGrid 中的BoundColumn控件可以讓你完全控制列的狀態(tài),包括ReadOnly屬性。

      使用DataGrid中的TemplateColumn控件可以讓你完全控制列的內(nèi)容

      ButtonColumn(按鈕列)可以用來(lái)在該列為每一行提供一個(gè)按鈕控件,它可以關(guān)聯(lián)事件。

      HyperLinkColumn(超鏈接列)可以添加到DataGrid的列集合,當(dāng)該鏈接被點(diǎn)擊的時(shí)候,可以定向到其他頁(yè)面。

      當(dāng)DataGrid的AllowSorting(允許排序)屬性被設(shè)為true,它在列標(biāo)題位置提供了超鏈接,用以激活Sort命令,并返回給表格。當(dāng)用戶點(diǎn)擊這個(gè)(用來(lái)排序的)鏈接的時(shí)候,所調(diào)用的事件句柄可以在DataGrid的OnSortCommand屬性中設(shè)定。

      DataSet支持ReadXml、ReadXmlData和ReadXmlSchema方法,使用FileStream作為參數(shù),它可以用來(lái)從XML文件組裝DataSet。

      使用存儲(chǔ)過(guò)程可以減少應(yīng)用程序中數(shù)據(jù)庫(kù)的負(fù)荷。

      由于這一部分的內(nèi)容比較多,所以我們用三個(gè)章節(jié),包括9、10、11,才將asp.net的服務(wù)器端數(shù)據(jù)訪問(wèn)全部講完。從后面的章節(jié)開始,講解數(shù)據(jù)訪問(wèn)和用戶訂制。敬請(qǐng)期待...

      分享:ASP.NET立即上手教程(9)
      服務(wù)器端數(shù)據(jù)介紹 數(shù)據(jù)訪問(wèn)是現(xiàn)實(shí)世界中應(yīng)用程序的核心內(nèi)容。Asp.net提供了一套豐富的控件,他與CLR(通用語(yǔ)言運(yùn)行庫(kù))提供的用來(lái)管理數(shù)據(jù)訪問(wèn)的APIs(應(yīng)用程序接口)緊密結(jié)合。本章預(yù)排幾個(gè)

      來(lái)源:模板無(wú)憂//所屬分類:.Net教程/更新時(shí)間:2008-08-22
      相關(guān).Net教程