ASP.NET 2.0中的DataSource系列控件
發(fā)表時(shí)間:2024-02-02 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]ASP.NET 2.0中,在其中的數(shù)據(jù)連接方面做了很大的改進(jìn),新加入的datasource系列控件,使得在數(shù)據(jù)庫的連接方面更加容易,很多都可以通過向?qū)降脑O(shè)置來完成SQL語句的編寫和數(shù)據(jù)庫連接。ASP.NET 2.0中的DataSource系列控件總共有6種,分別是: Sqldatasource...
ASP.NET 2.0中,在其中的數(shù)據(jù)連接方面做了很大的改進(jìn),新加入的datasource系列控件,使得在數(shù)據(jù)庫的連接方面更加容易,很多都可以通過向?qū)降脑O(shè)置來完成SQL語句的編寫和數(shù)據(jù)庫連接。ASP.NET 2.0中的DataSource系列控件總共有6種,分別是:
Sqldatasource控件----用于連接sql數(shù)據(jù)庫的數(shù)據(jù)源控件
Accessdatasource控件----用于連接access數(shù)據(jù)庫的數(shù)據(jù)源控件
ObjectDataSource控件----用于連接自定義對(duì)象的數(shù)據(jù)源控件
DataSetDataSource控件-----將XML文件做為dataset并進(jìn)行相關(guān)處理的控件
XmlDataSource控件-----該控件裝載Xml文件,并綁定到datagrid、datalist等控件中
SiteMapDataSource控件-----該控件裝載一個(gè)預(yù)先定義好的站點(diǎn)布局文件,之后將其與treenode樹形控件或Sitemappath控件綁定,以實(shí)現(xiàn)方便地制作站點(diǎn)的頁面導(dǎo)航功能。
下圖顯示了VS.NET 2005 Express beta 1中,Datasource的六種控件:
本文中,將重點(diǎn)介紹ObjectDataSource控件,DataSetDataSource控件和XmlDataSource控件,而sqldatasource控件的介紹,請(qǐng)參考《
使用ASP.NET 2.0中的GridView控件》,該文中介紹了sqldatasource控件的使用方法,而accessdatasource控件,則與sqldatasource 控件類似,只不過連接的數(shù)據(jù)庫是access。
ObjectDataSource控件 該控件,將用戶自己創(chuàng)建的對(duì)象綁定到數(shù)據(jù)控件中,比如綁定到datagrid,gridview。下面來看個(gè)例子,在visual studio 2005 beta 1中,創(chuàng)建新的站點(diǎn),并添加一個(gè)新的類,名稱叫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數(shù)據(jù)庫中所有的產(chǎn)品,以dataset形式返回。使用objectdatasource 控件,可以將自定義的類綁定到數(shù)據(jù)控件中,而只需要將ojectdatasource 控件拖拉到設(shè)計(jì)窗體中,之后,點(diǎn)擊'Configure Data Source…'鏈接,在彈出的窗體中(如下圖),選擇要綁定的類,此時(shí)選擇Product類就可以了,
在下一步中,選擇要綁定哪一個(gè)類中的相關(guān)方法,如下圖:
在下一步中,將可以選擇執(zhí)行什么樣的SQL語句,比如select,update,insert,delete等操作,本文中只需要返回Product數(shù)據(jù),所以選擇select就可以了,之后點(diǎn)FINISH完成操作。
接著,拖拉一個(gè)gridview控件到窗體中,將其綁定到剛才我們創(chuàng)建的objectdatasource 控件,并將Enable Paging, Enable Scripting, Enable Selection三個(gè)選擇框打勾,如下圖:
之后運(yùn)行程序,就可以看到結(jié)果。如果要對(duì)ojectdatasource 控件進(jìn)行編輯的話,就要另外提供一個(gè)方法了,我們加入一個(gè)叫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選項(xiàng)卡中的updateProducts方法,并在綁定到gridview控件時(shí),選擇“Enable Editing option”,運(yùn)行程序,則可以對(duì)記錄進(jìn)行編輯了,如下圖:
[page_break]
DataSetDataSource控件
該控件允許將XML document或其他文件看作dataset進(jìn)行處理,比如有一個(gè)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控件拖拉到設(shè)計(jì)窗體,并選“Configure Data Source”,在數(shù)據(jù)源設(shè)置窗體中,選擇books.xml作為數(shù)據(jù)源,再拖拉一個(gè)gridview控件,將其綁定到datasetdatasource控件中,運(yùn)行如下:
XmlDataSource控件 該控件也允許將XML document或其他文件綁定到DATAGRID,GRIDVIEW中,但被綁定的XML文件的結(jié)構(gòu)可以是不大規(guī)則的,不包含DATASET。XMLDATASOURCE控件還可以使用xpath,可以將XML文件綁定到TREEVIEW等其他控件中去。比如一個(gè)RSS的文件,其XML表示如下,保存為msdn.xml:
拖拉一個(gè)XMLDATASOURCE控件,點(diǎn)'Configure Data Source…’鏈接,設(shè)置其數(shù)據(jù)源為msdn.xml,在xpath表達(dá)式中,設(shè)置為“rss/channel/item”,則只返回item結(jié)點(diǎn)下的內(nèi)容,再拖拉一個(gè)datalist控件,將其數(shù)據(jù)源設(shè)置為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>
運(yùn)行,就可以看到一個(gè)簡單的RSS形式的閱讀器了,如下圖,十分方便。