ASP.NET - 数据源

数据源控件与数据绑定控件交互并隐藏复杂的数据绑定过程.这些工具为数据绑定控件提供数据,并支持插入,删除,排序和更新等操作的执行.

每个数据源控件包装特定的数据提供者 - 关系数据库,XML文档或自定义类,有助于:

  • 管理连接

  • 选择数据

  • 管理分页,缓存等演示文稿方面.

  • 操作数据

ASP.NET中有许多数据源控件可用于从SQL Server,ODBC或OLE DB服务器,XML文件和业务对象访问数据.

基于类型对于数据,这些控件可以分为两类:

  • 分层数据源控件

  • 基于表的数据源控件

用于分层数据的数据源控件是:

  • XMLDa taSource  - 它允许绑定带有或不带有架构信息的XML文件和字符串.

  • SiteMapDataSource  - 它允许绑定提供站点地图信息的提供商.

用于表格数据的数据源控件是:

数据源控件描述
SqlDataSource它表示与返回SQL的ADO.NET数据提供程序的连接数据,包括可通过OLEDB和ODBC访问的数据源.
ObjectDataSourceIt允许绑定到返回数据的自定义.Net业务对象.
LinqdataSource它允许绑定到Linq-to-SQL查询的结果(仅受ASP.NET 3.5支持).
AccessDataSource它表示与Micros的连接访问数据库.

数据源视图

数据源视图是对象DataSourceView类.它表示不同数据操作(如排序,过滤等)的数据的自定义视图.

DataSourceView类充当所有数据源视图类的基类,这些类定义了数据源控件.

下表提供了DataSourceView类的属性:

属性描述
CanDelete表示是否允许在基础数据源上删除.
CanInsert表示是否允许在基础数据源上插入.
CanPage表示是否允许在基础数据源上进行分页.
CanRetrieveTotalRowCount表示总行数信息是否可用.
CanSort表示数据是否可以排序.
CanUpdate表示是否允许对基础数据源进行更新.
Events获取数据源视图的事件处理程序委托列表.
Name视图名称.

下表提供了DataSourceView类的方法:

方法描述
CanExecute确定是否可以执行指定的命令.
ExecuteCommand执行特定命令.
ExecuteDelete对列表中执行删除操作DataSourceView对象表示的数据.
ExecuteInsert对DataSourceView对象所代表的数据列表执行插入操作.
ExecuteSelect从基础数据存储中获取数据列表.
ExecuteUpdate对DataSourceView对象所代表的数据列表执行更新操作.
Delete对与视图关联的数据执行删除操作.
Insert对与视图关联的数据执行插入操作.
Select返回查询数据.
Update对与视图关联的数据执行更新操作.
OnDataSourceViewChanged引发DataSourceViewChanged事件.
RaiseUnsupportedCapabilitiesError由RaiseUnsupportedCapabilitiesError方法调用,以比较ExecuteSelect操作请求的功能与视图支持的功能.

SqlDataSource控件

SqlDataSource控件表示与关系数据库(如SQL Server或Oracle)的连接数据库或可通过OLEDB或开放式数据库连接(ODBC)访问的数据.通过两个重要的属性ConnectionString和ProviderName连接数据.

以下代码片段提供了控件的基本语法:

<asp:SqlDataSource runat="server" ID="MySqlSource"
   ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName  %>'
   ConnectionString='<%$ ConnectionStrings:LocalNWind %>'
   SelectionCommand= "SELECT * FROM EMPLOYEES" />

<asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />

在基础数据上配置各种数据操作取决于数据源控件的各种属性(属性组).

下表提供了SqlDataSource控件的相关属性集,它提供了控件的编程接口:

物业组描述

DeleteCommand,

DeleteParameters,

DeleteCommandType

获取或设置用于删除基础数据中的行的SQL语句,参数和类型.

FilterExpression,

FilterParameters

获取或设置数据过滤字符串和参数.

InsertCommand,

InsertParameters,

InsertCommandType

获取s或设置用于在基础数据库中插入行的SQL语句,参数和类型.

SelectCommand,

SelectParameters,

SelectCommandType

获取或设置用于从基础数据库检索行的SQL语句,参数和类型.
SortParameterName获取或设置命令的存储过程将用于对数据进行排序的输入参数的名称.

UpdateCommand,

UpdateParameters,

UpdateCommandType

获取或设置用于更新基础数据存储中的行的SQL语句,参数和类型.

以下代码段显示了为数据操作启用的数据源控件:

<asp:SqlDataSource runat="server" ID= "MySqlSource"
   ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName  %>'
   ConnectionString=' <%$ ConnectionStrings:LocalNWind %>'
   SelectCommand= "SELECT * FROM EMPLOYEES"
   UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame"
   DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid"
   FilterExpression= "EMPLOYEEID > 10">
   .....
   .....
</asp:SqlDataSource>

ObjectDataSource控件

ObjectDataSource控件允许用户定义的类将其方法的输出与数据绑定控件相关联.此类的编程接口与SqlDataSource控件几乎相同./p>

以下是绑定业务对象的两个重要方面:

  • 可绑定类应该有一个默认的构造函数,它应该是无状态的,并且有可以映射到选择,更新,插入和删除语义的方法.

  • 对象必须更新一次只有一个项目,不支持批处理操作.

让我们直接进入一个使用此控件的示例. class是与对象数据源一起使用的类.这个类有三个属性:学生ID,名称和城市.它有一个默认构造函数和一个GetStudents方法用于re学习班级:

public class Student
{
   public int StudentID { get; set; }
   public string Name { get; set; }
   public string City { get; set; }
   
   public Student()
   { }
   
   public DataSet GetStudents()
   {
      DataSet ds = new DataSet();
      DataTable dt = new DataTable("Students");
      
      dt.Columns.Add("StudentID", typeof(System.Int32));
      dt.Columns.Add("StudentName", typeof(System.String));
      dt.Columns.Add("StudentCity", typeof(System.String));
      dt.Rows.Add(new object[] { 1, "M. H. Kabir", "Calcutta" });
      dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" });
      ds.Tables.Add(dt);
      
      return ds;
   }
}

按照以下步骤将对象与对象数据源绑定并检索数据:

  • 创建一个新网站.

  • 添加课程(学生) .cs)右键单击解决方案资源管理器中的项目,添加一个类模板,并将上面的代码放入其中.

  • 构建解决方案以便应用程序可以使用对类的引用.

  • 将对象数据源控件放在Web表单中.

  • 通过选择对象来配置数据源.

selecting the object

  • 为数据的不同操作选择一种数据方法.在这个例子中,只有一种方法.

选择数据方法

  • 在页面上放置数据绑定控件(如网格视图)并选择对象数据源为它的基础数据源.

数据绑定控制

  • 在此阶段,设计视图应如下所示:

对象数据源

  • 运行项目,它从学生班级中检索硬编码元组.

对象数据结果

AccessDataSource控件

AccessDataSource控件表示与访问数据凌辱.它基于SqlDataSource控件,并提供更简单的编程接口.以下代码段提供了数据源的基本语法:

<asp:AccessDataSource ID="AccessDataSource1 runat="server" 
   DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM  [DotNetReferences]">
</asp:AccessDataSource>

AccessDataSource控件以只读模式打开数据库.但是,它也可以用于执行插入,更新或删除操作.这是使用ADO.NET命令和参数集合完成的.

更新对于ASP.NET应用程序中的Access数据库是有问题的,因为Access数据库是普通文件,并且ASP.NET应用程序的默认帐户可能没有写入数据库文件的权限.