ASP.NET2.0中的DataSource系列控件
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控件綁定,以實現方便地制作站點的頁面導航功能。
下圖顯示了VS.NET 2005 Express beta 1中,Datasource的六種控件:
本文中,將重點介紹ObjectDataSource控件,DataSetDataSource控件和XmlDataSource控件,而sqldatasource控件的介紹,請參考《使用ASP.NET 2.0中的GridView控件》,該文中介紹了sqldatasource控件的使用方法,而accessdatasource控件,則與sqldatasource 控件類似,只不過連接的數據庫是access。
ObjectDataSource控件
該控件,將用戶自己創建的對象綁定到數據控件中,比如綁定到datagrid,gridview。下面來看個例子,在visual studio 2005 beta 1中,創建新的站點,并添加一個新的類,名稱叫Products:
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的方法,如下:
之后再綁定到objectdatasource控件,并選用其中的UPDATE選項卡中的updateProducts方法,并在綁定到gridview控件時,選擇“Enable Editing option”,運行程序,則可以對記錄進行編輯了,如下圖:
DataSetDataSource控件
該控件允許將XML document或其他文件看作dataset進行處理,比如有一個XML文件如下,以BOOKS.XML文件命名:
下面,將使用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,再切換到代碼窗口,增加如下的代碼:
運行,就可以看到一個簡單的RSS形式的閱讀器了,如下圖,十分方便。
至于Sitemapdatasource控件,請參考《在ASP.NET 2.0中使用頁面導航控件》一文
總結:
本文簡單介紹了ASP.NET 2.0中十分強大的新增的datasource系列控件,有了這些控件,在與數據庫和其他數據源的相關操作中,將十分方便,不用編寫太多的代碼,在正式版的ASP.NET 2.0中,估計會增加更多的功能。
Sqldatasource控件----用于連接sql數據庫的數據源控件
Accessdatasource控件----用于連接access數據庫的數據源控件
ObjectDataSource控件----用于連接自定義對象的數據源控件
DataSetDataSource控件-----將XML文件做為dataset并進行相關處理的控件
XmlDataSource控件-----該控件裝載Xml文件,并綁定到datagrid、datalist等控件中
SiteMapDataSource控件-----該控件裝載一個預先定義好的站點布局文件,之后將其與treenode樹形控件或Sitemappath控件綁定,以實現方便地制作站點的頁面導航功能。
下圖顯示了VS.NET 2005 Express beta 1中,Datasource的六種控件:
![]() |
本文中,將重點介紹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中,估計會增加更多的功能。