[索引页]
[源码下载]



温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)


作者:webabcd


介绍
在 ASP.NET 2.0 中有几个新的数据源控件,例如,SqlDataSource、ObjectDataSource、XmlDataSource、AccessDataSource 和 SiteMapDataSource。它们全都可以用来从它们各自类型的数据源中检索数据,并且可以绑定到各种数据绑定控件。数据源控件减少了为检索和绑定数据甚至对数据进行排序、分页或编辑而需要编写的自定义代码的数量。

其中 ObjectDataSource 控件可针对各种基础数据存储区(如 SQL 数据库或 XML)启用声明性数据绑定模型。因为页开发人员也常常将数据检索(也可能包含业务逻辑)封装在一个组件对象中,从而在呈现页和数据提供程序之间引入另一个层。ObjectDataSource 控件允许开发人员使用此传统的三层结构构造应用程序,同时仍然能够利用 ASP.NET 中的声明性数据绑定模型的易用性优点。


关键
1、在数据层创建 强类型的DataSet和TableAdapter,TableAdapter查询可以使用现有的存储过程。注:直接把表或存储过程拖进来会自动创建TableAdapter

2、中间层的类用[System.ComponentModel.DataObject]声明为数据组件,CRUD方法分别对应[DataObjectMethod(DataObjectMethodType.Insert)],[DataObjectMethod(DataObjectMethodType.Select)],[DataObjectMethod(DataObjectMethodType.Update)],[DataObjectMethod(DataObjectMethodType.Delete)]

3、web层使用ObjectDataSource展现数据,ObjectDataSource就相当于一个代理。ObjectDataSource只是查找具有匹配的参数名称的方法,它不会使用参数的 Type 或 Size,而只是对参数的名称进行匹配

4、其它
  ·<asp:Parameter />有ConvertEmptyStringToNull属性,默认是true。另外还有Direction属性
  ·注意<asp:BoundField />的这几个属性NullDisplayText,HtmlEncode,ApplyFormatInEditMode,InsertVisible,DataFormatString,ReadOnly
  ·DataKeyNames有多个值的话用“,”分隔,用<asp:ControlParameter />绑定的话给其加一个“PropertyName”属性,值类似如下“SelectedDataKey.Values[0]”
  ·关于绑定:简单属性<%# custID %>;集合<asp:ListBox + customer.LastName ) %>;方法<%# GetBalance(custID) %> 
  ·<%# Eval("field1") %> 和 <%# Bind("field1") %>,Eval是单向绑定,Bind是双向邦定
  ·<asp:ObjectDataSource />有一个OldValuesParameterFormatString属性一般不用,不过如果要处理乐观并发之类的就会用到。当该属性的值为“original_{0}”的时候“original_参数名”则为初始值
  ·还有一些如编程方式给参数赋值,错误处理,得到返回值之类的请看源码


示例
相关存储过程和数据层略,见源码

单例模式的实现
App_Code/Singleton.cs
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)using System;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Data;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Configuration;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.Security;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.WebControls;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.WebControls.WebParts;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.HtmlControls;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)

中间层代码
App_Code/Test.cs
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)using System;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Data;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Configuration;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.Security;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.WebControls;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.WebControls.WebParts;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.HtmlControls;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using TestDatabaseTableAdapters;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.ComponentModel;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)

DataSourceControl/Test.aspx

DataSourceControl/Test.aspx.cs
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)using System;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Data;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Configuration;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Collections;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.Security;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.WebControls;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.WebControls.WebParts;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
using System.Web.UI.HtmlControls;
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
温故知新ASP.NET 2.0(C#)(8) - DataSourceControl(数据源控件)
public partial class DataSourceControl_Test : System.Web.UI.Page


OK
[源码下载]
 

相关文章:

  • 2021-10-08
  • 2022-02-17
  • 2021-08-03
  • 2022-12-23
  • 2022-12-23
  • 2021-06-24
  • 2021-10-23
猜你喜欢
  • 2021-10-22
  • 2021-08-22
  • 2021-11-25
  • 2022-01-23
  • 2022-02-06
  • 2021-07-08
相关资源
相似解决方案