ASP.NET 2.0中的DataSource系列控制項

來源:互聯網
上載者:User
asp.net|控制項 ASP.NET 2.0中,在其中的資料連線方面做了很大的改進,新加入的datasource系列控制項,使得在資料庫的串連方面更加容易,很多都可以通過嚮導式的設定來完成SQL語句的編寫和資料庫連接。ASP.NET 2.0中的DataSource系列控制項總共有6種,分別是:

  Sqldatasource控制項----用於串連sql資料庫的資料來源控制項
  Accessdatasource控制項----用於串連access資料庫的資料來源控制項
  ObjectDataSource控制項----用於串連自訂對象的資料來源控制項
  DataSetDataSource控制項-----將XML檔案做為dataset並進行相關處理的控制項
  XmlDataSource控制項-----該控制項裝載Xml檔案,並綁定到datagrid、datalist等控制項中
  SiteMapDataSource控制項-----該控制項裝載一個預先定義好的網站布局檔案,之後將其與treenode樹形控制項或Sitemappath控制項綁定,以實現方便地製作網站的頁面導航功能。

 
  本文中,將重點介紹ObjectDataSource控制項,DataSetDataSource控制項和XmlDataSource控制項,而sqldatasource控制項的介紹,請參考《使用ASP.NET 2.0中的GridView控制項》,該文中介紹了sqldatasource控制項的使用方法,而accessdatasource控制項,則與sqldatasource 控制項類似,只不過串連的資料庫是access。

  ObjectDataSource控制項

  該控制項,將使用者自己建立的對象綁定到資料控制項中,比如綁定到datagrid,gridview。下面來看個例子,在visual studio 2005 beta 1中,建立新的網站,並添加一個新的類,名稱叫Products:

Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient

Public Class Products
Public Function getProducts() As DataSet
 Dim conn As New SqlConnection("Server=(local);Integrated Security=True;Database=Northwind;Persist
Security Info=True")
 Dim adapter As New SqlDataAdapter("SELECT [ProductID], [ProductName], [SupplierID], [CategoryID],
[QuantityPerUnit], [UnitPrice] FROM [Products]", conn)

 Dim ds As New DataSet
 adapter.Fill(ds, "Products")
 Return ds
End Function
End Class
  Product類包含了getproducts方法,該方法返回Northwind資料庫中所有的產品,以dataset形式返回。使用objectdatasource 控制項,可以將自訂的類綁定到資料控制項中,而只需要將ojectdatasource 控制項拖拉到設計表單中,之後,點擊'Configure Data Source…'連結,在彈出的表單中(如下圖),選擇要綁定的類,此時選擇Product類就可以了,


  在下一步中,選擇要綁定哪一個類中的相關方法
 
  在下一步中,將可以選擇執行什麼樣的SQL語句,比如select,update,insert,delete等操作,本文中只需要返回Product資料,所以選擇select就可以了,之後點FINISH完成操作。

  接著,拖拉一個gridview控制項到表單中,將其綁定到剛才我們建立的objectdatasource 控制項,並將Enable Paging, Enable Scripting, Enable Selection三個選擇框打勾,如下圖:


  之後運行程式,就可以看到結果。如果要對ojectdatasource 控制項進行編輯的話,就要另外提供一個方法了,我們加入一個叫updateProducts的方法,如下:

Public Sub updateProducts(ByVal ProductID As Integer, ByVal ProductName As String, _
 ByVal SupplierID As Integer, ByVal CategoryID As Integer, _
 ByVal QuantityPerUnit As String, ByVal UnitPrice As Double)
 Dim conn As New SqlConnection("Server=(local);Integrated Security=True;Database=Northwind;Persist Security
Info=True")
 Dim adapter As New SqlDataAdapter("SELECT * FROM Products WHERE ProductID=" & ProductID, conn)
 Dim ds As New DataSet
 adapter.Fill(ds, "Products")
 With ds.Tables(0).Rows(0)
  .Item("ProductName") = ProductName
  .Item("SupplierID") = SupplierID
  .Item("CategoryID") = CategoryID
  .Item("QuantityPerUnit") = QuantityPerUnit
  .Item("UnitPrice") = UnitPrice
 End With
 Dim cb As New SqlCommandBuilder(adapter)
 adapter.Update(ds, "Products")
End Sub
  之後再綁定到objectdatasource控制項,並選用其中的UPDATE選項卡中的updateProducts方法,並在綁定到gridview控制項時,選擇“Enable Editing option”,運行程式,則可以對記錄進行編輯了

DataSetDataSource控制項

  該控制項允許將XML document或其他檔案看作dataset進行處理,比如有一個XML檔案如下,以BOOKS.XML檔案命名:

<?xml version="1.0" standalone="yes"?>
<Books xmlns="http://tempuri.org/Books.xsd">
<Book>
<Title>ASP.NET 2.0: A Developer's Notebook (O'Reilly)
</Title>
<PubDate>December 2004</PubDate>
<Synopsis>To bring you up to speed with ASP.NET 2.0, this practical book offers nearly 50 hands-on projects.
.</Synopsis>
</Book>
<Book>
<Title>.NET Compact Framework Pocket Guide (O'Reilly)
</Title>
<PubDate>May 2004</PubDate>
<Synopsis>Looking to create applications for Pocket PC and Windows based Smartphones? </Synopsis>
</Book>
</Books>
  下面,將使用datasetdatasource控制項,將XML檔案綁定到GRIDVIEW中。將datasetdatasource控制項拖拉到設計表單,並選“Configure Data Source”,在資料來源設定表單中,選擇books.xml作為資料來源,再拖拉一個gridview控制項,將其綁定到datasetdatasource控制項中
 
  XmlDataSource控制項
 
  該控制項也允許將XML document或其他檔案綁定到DATAGRID,GRIDVIEW中,但被綁定的XML檔案的結構可以是不大規則的,不包含DATASET。XMLDATASOURCE控制項還可以使用xpath,可以將XML檔案綁定到TREEVIEW等其他控制項中去。比如一個RSS的檔案,其XML表示如下,儲存為msdn.xml:

  

  拖拉一個XMLDATASOURCE控制項,點'Configure Data Source…’連結,設定其資料來源為msdn.xml,在xpath運算式中,設定為“rss/channel/item”,則只返回item結點下的內容,再拖拉一個datalist控制項,將其資料來源設定為xmldatasource。

  在Smart tag菜單中,選擇“'Auto Format…”,並選擇Slate scheme,再切換到代碼視窗,增加如下的代碼:

<asp:DataList ID="DataList1" Runat="server"
GridLines="Horizontal"
BorderWidth="1px" BackColor="White" CellPadding="3"
BorderStyle="None" BorderColor="#E7E7FF"
DataSourceID="XmlDataSource1">
<FooterStyle ForeColor="#4A3C8C"
BackColor="#B5C7DE"></FooterStyle>
<ItemTemplate>
<b><%#XPath("title")%></b><br />
<i><%#XPath("pubDate")%></i><br />
<%#XPath("description")%><br />
<a href='<%#XPath("link")%>'>Link</a><br />
<br />
</ItemTemplate>
<AlternatingItemStyle BackColor="#F7F7F7">
</AlternatingItemStyle>
<ItemStyle ForeColor="#4A3C8C"
BackColor="#E7E7FF">
</ItemStyle>
<SelectedItemStyle ForeColor="#F7F7F7"
Font-Bold="True"
BackColor="#738A9C"></SelectedItemStyle>
<HeaderTemplate>RSS Feeds</HeaderTemplate>
<HeaderStyle ForeColor="#F7F7F7"
Font-Bold="True"
BackColor="#4A3C8C"></HeaderStyle>
</asp:DataList>
  運行,就可以看到一個簡單的RSS形式的閱讀器了,如下圖,十分方便。


  至於Sitemapdatasource控制項,請參考《在ASP.NET 2.0中使用頁面導航控制項》一文

  總結:

  本文簡單介紹了ASP.NET 2.0中十分強大的新增的datasource系列控制項,有了這些控制項,在與資料庫和其他資料來源的相關操作中,將十分方便,不用編寫太多的代碼,在正式版的ASP.NET 2.0中,估計會增加更多的功能。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.