1、第八章 数据源控件,数据源控件简介 SQLDataSource AccessDataSource ObjectDataSource XMLDataSource SiteMapDataSource,数据源控件 ASP.NET 包含一些数据源控件,这些数据源控件允许您使用不同类型的数据源,如数据库、XML 文件或中间层业务对象。数据源控件连接到数据源,从中检索数据,并使得其他控件可以绑定到数据源而无需代码。数据源控件还支持修改数据。,数据源控件,SqlDataSource SqlDataSource控件,是用来连接数据库类型的数据源控件,可以访问位于某个关系数据库中的数据,数据库可以是Micros
2、oft SQL Server、Oracle数据库、OLE DB和 ODBC。可以将SqlDataSource控件和用于显示数据的其他控件(如GridView等)结合使用,使用很少的代码可以在ASP.NET网页对数据实现增加、修改、删除、选择、分页、排序、缓存以及筛选操作。,数据源控件,SqlDataSource控件配置数据源时,将ProviderName属性设置为数据库类型并将ConnectionString属性设置为连接字符串,该字符串包含连接至数据库所需的信息。连接字符串的内容根据数据源控件访问的数据库类型的不同而不同。,数据源控件,asp:SqlDataSource ID=“ ID_Na
3、me “ runat=“server“ ConnectionString=“string“SelectCommand=“string“ CacheDuration=“ Infinite|string“ CacheExpirationPolicy=“ Absolute|Sliding“ EnableCaching=“True|False“ CancelSelectOnNullParameter=“True|False“ ConflictDetection=“CompareAllValues|Overwrite“,数据源控件,DeleteCommandType=“Text|StoredProced
4、ure“ DataSourceMode=“DataReader|DataSet“ DeleteCommand=“string“ FilterExpression=“string“ InsertCommand=“string“ InsertCommandType=“Text|StoredProcedure“ ProviderName=“string|System.Data.SqlClient|System.Data.Odbc|System.Data.OleDb|System.Data. OracleClient|System.Data.SqlClient“ SelectCommandType=“
5、Text|StoredProcedure“ SortParameterName=“string“ UpdateCommand=“string“ UpdateCommandType=“Text|StoredProcedure“,数据源控件,OnDataBinding=“Method of DataBinding“OnDeleted=“Method of Deleted“ OnDeleting=“ Method of Deleting“ OnFiltering=“ Method of Filtering“ OnInserted=“ Method of Inserted“ OnInserting=“
6、 Method of Inserting“ OnSelected=“ Method of Selected“ OnSelecting=“ Method of Selecting“ OnUpdated=“ Method of Updated“ OnUpdating=“ Method of Updating“ ,数据源控件,AccessDataSource AccessDataSource数据源控件可以检索Microsoft Access数据库(.mdb 文件)中的数据。然后在数据绑定控件,GridView、FormView等,显示数据。 AccessDataSource控件继承了SqlDataS
7、ource类,并用DataFile属性替换了 ConnectionString属性,连接到Microsoft Access数据库。,数据源控件,AccessDataSource控件使用System.Data.OleDb提供程序连接到使用 Microsoft.Jet.OLEDB.4.0 OLE DB提供程序的Access数据库。 AccessDataSource不会连接到受密码保护的Access数据库;要从受密码保护的 Access数据库中检索数据,需要使用SqlDataSource控件。,数据源控件,asp:AccessDataSource ID=“ID_Name“ runat=“server
8、“ DataFile=“File of Access Database“ SelectCommand=“string“ CacheDuration=“ Infinite|string“CacheExpirationPolicy=“ Absolute|Sliding“ EnableCaching=“True|False“ CancelSelectOnNullParameter=“True|False“,数据源控件,ConflictDetection=“CompareAllValues|Overwrite“ DeleteCommandType=“Text|StoredProcedure“ Dele
9、teCommand=“string“FilterExpression=“string“ InsertCommand=“string“ InsertCommandType=“Text|StoredProcedure“DataSourceMode=“DataReader|DataSet“ SelectCommandType=“Text|StoredProcedure“ SortParameterName=“string“ UpdateCommand=“string“ UpdateCommandType=“Text|StoredProcedure“,数据源控件,OnDataBinding=“Meth
10、od of DataBinding“OnDeleted=“Method of Deleted“ OnDeleting=“ Method of Deleting“ OnFiltering=“ Method of Filtering“ OnInserted=“ Method of Inserted“ OnInserting=“ Method of Inserting“ OnSelected=“ Method of Selected“ OnSelecting=“ Method of Selecting“ OnUpdated=“ Method of Updated“ OnUpdating=“ Meth
11、od of Updating“ ,数据源控件,ObjectDataSource ObjectDataSource控件具有数据检索和更新功能的中间层对象,可以将表示层和数据库层分开,实现三层应用程序结构,通过TypeName属性标识 ObjectDataSource 使用的类的名称。 ObjectDataSource控件使用反射技术创建业务对象的实例,并调用实例的方法来实现对数据执行选择、插入、更新、删除、分页、排序、缓存和筛选操作。,数据源控件,ObjectDataSource 控件在每次调用方法时都创建并销毁类的实例,它在 Web 请求的生存期内不在内存中保留对象。如果您使用的业务对象需要很
12、多资源或者在其他方面需要很大开销来创建和销毁,您就需要认真考虑。,数据源控件,asp: ObjectDataSourceID=“ ID_Name “ runat=“server“ EnablePaging=“True|False“CacheDuration=“ Infinite|string“ CacheExpirationPolicy=“ Absolute|Sliding“ CacheKeyDependency=”string”EnableCaching=“True|False“ DeleteMethod=“Method of Delete“ SelectCountMethod=“Metho
13、d of SelectCount“InsertMethod=“ Method of Insert “ SelectMethod=“ Method of Select “,数据源控件,UpdateMethod=“ Method of Update “onflictDetection=“CompareAllValues|Overwrite“ ConvertNullToDBNull=“True|False“ DataObjectTypeName=“String“ FilterExpression=“string“ SortParameterName=“string“ TypeName=”Class”
14、OnDataBinding=“ Method of DataBinding“ OnDeleted=“ Method of Deleted“ OnDeleting=“ Method of Deleting“ OnFiltering=“ Method of Filtering“,数据源控件,OnInserted=“ Method of Inserted“ OnInserting= Method of Inserting“ OnObjectCreated=“ Method of ObjectCreated“ OnObjectCreating=“ Method of ObjectCreating“ O
15、nObjectDisposing=“ Method of ObjectDisposing“ OnSelected=“ Method of Selected“ OnSelecting=“ Method of Selecting“ OnUpdated=“ Method of Updated“ OnUpdating=“ Method of Updating“ ,数据源控件,XMLDataSource XmlDataSource 控件使得XML数据可用于数据绑定控件。在只读方案下通常使用 XmlDataSource 控件显示分层XML数据,也可以使用该控件同时显示分层数据和表格数据。由于XmlData
16、Source控件不支持Delete、Insert和Update等方法,因此不能用于读/写XML数据存储的Web应用程序。,数据源控件,XmlDataSource的DataFile属性用于指定XML文件加载XML数据。也可以使用 Data属性的字符串加载XML数据。如果同时设置这两个属性,则DataFile优先优先级比Data的高。 XmlDataSource控件也可以使用可扩展样式表语言 (XSL) 样式表指定转换,从而可以绑定到非属性的值。,数据源控件,asp:XmlDataSource ID=“ID_Name“ runat=“server“ CacheDuration=“ Infinite
17、|string“CacheExpirationPolicy=“ Absolute|Sliding“ DataFile=“File of XML“ Data=”Text”Transform=“File of XSLT“ TransformFile=“File of XSL“ XPath=”string”,数据源控件,OnDataBinding=“ Method of DataBinding“ OnTransforming=“ Method of DataBinding Transforming“,数据源控件,SiteMapDataSource SiteMapDataSource控件包含来自站点地图的导航数据,包括有关网站中的页的信息,如URL、标题、说明和导航层次结构中的位置。若将导航数据存储在一个地方,则可以更方便地在网站的导航菜单中添加和删除项。SiteMapDataSource Web服务器控件从站点地图提供程序中检索导航数据,然后将数据传递给可显示该数据的控件,如TreeView和Menu控件。,数据源控件,数据源控件,