服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - ASP教程 - ASP.NET 数据源

ASP.NET 数据源

2023-05-08 03:22未知服务器之家 ASP教程

数据源 一个 data sourse 控件与数据绑定的控件相互作用,并隐藏了复杂的数据的联编过程。这些是提供数据给 data bound 控件的工具,并且支持如插入,删除和更新操作的执行。 每一个 data sourse 控件包裹了一个特殊的数据提供者相关

数据源

一个 data sourse 控件与数据绑定的控件相互作用,并隐藏了复杂的数据的联编过程。这些是提供数据给 data bound 控件的工具,并且支持如插入,删除和更新操作的执行。

每一个 data sourse 控件包裹了一个特殊的数据提供者相关的数据库,XML 文件,或者是自定义类,并且帮助:

  • 管理连接
  • 选择数据
  • 管理像分页,缓存等的展示方面
  • 操控数据

有许多可在 ASP.NET 中获得的 data sourse 控件,为从 SQL 服务器,ODBC 或者 OLE DB 服务器,从 XML 文件,和从业务对象中获得数据。

基于数据类型,这些控件能被分为两个种类:

  • 分层的 data sourse 控件
  • 基于表格的 data sourse 控件

用于分层数据的 data sourse 控件是:

  • XMLDataSource – 它允许用或者不用模式信息绑定 XML 文件和字符串。
  • SiteMapDataSource – 它允许绑定一个提供站点地图信息的提供者。

用作表格数据的 data source 控件是:

Data source 控件描述
SqlDataSource它表示到返回 SQL 数据的 ADO.NET data provider 的连接,包括通过 OLEDB 和 QDBC 可获得的 data sources。
ObjectDataSource它允许绑定一个返回数据的自定义的 .Net business 对象
LinqdataSource它允许绑定 Linq-t0-SQL 查询的结果。(仅由 ASP.NET 3.5 支持)
AccessDataSource它表示到 Microsoft Access 数据库的连接。

Data Source 视图

Data source 视图是 DataSourceView 类的对象,它代表一个自定义的为不同数据操作如排序,过滤等而设计的数据视图。

DataSourceView 类作为所有 data source 视图类的基本类而使用,它定义了 data source 控件的性能。

以下表格提供了 DataSourceView 类的属性:

属性描述
CanDelete表示是否允许删除潜在的 data source。
CanInsert表示是否允许插入潜在的 data source。
CanPage表示是否允许给潜在的 data source 分页。
CanRetrieveTotalRowCount表示总的行信息能否获得。
CanSort表示数据是否能排序。
CanUpdate表示是否允许在潜在的 data source 上更新。
Events获得 data source 视图代表的事件句柄的列表。
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 或 Open Database Connectivity(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" />

在潜在的数据上配置不同的数据操作依赖于 data source 控件的不同属性(属性集)。

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

属性组描述
DeleteCommand,
DeleteParameters,
DeleteCommandType
获取或设置 SQL 语句,参数和在潜在数据中删除行的类型。
FilterExpression,
FilterParameters
获取并设置数据过滤字符串和参数。
InsertCommand,
InsertParameters,
InsertCommandType
获取或设置 SQL 语句,参数和在潜在数据中插入行的类型。
SelectCommand,
SelectParameters,
SelectCommandType
获取或设置 SQL 语句,参数和在潜在数据中检索行的类型。
SortParameterName获取或设置一个输入参数的名字,它将被命令存储的过程用来给数据排序。
UpdateCommand,
UpdateParameters,
UpdateCommandType
获取或设置 SQL 语句,参数和在潜在数据中更新行的类型。

以下的代码片段展示了能被用来做数据操作的 data source 控件:

<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 控件使 user-defined 类能让它们方法的输出和 data bound 控件相连接。这个类的编程接口几乎和 SqlDataSource 控件相同。

以下是绑定客户对象的两个重要方面:

  • 可绑定的类应该拥有一个默认的构造函数,它应该是无状态的,并且拥有能够映射到选择,更新,插入,和删除语意的方法。
  • 对象必须一次更新一个项目,批处理操作是不支持的。

让我们直接到一个例子中来使用这个控件。student 类是被用来和一个 data source 对象一起使用的类。这个类有三个属性:a student id,name,和 city。它有一个默认的构造函数和一个检索数据的 GetStudents 方法。

student 类:

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; } }

采取以下的步骤来将对线绑定到一个 data source 对象和检索数据:

  • 创建一个新的网页。
  • 通过右击 Solution Explorer 的项目来给它添加一个类(Student.cs),添加一个类模板,将上面的代码放在里面。
  • 建立方法使得应用程序可以使用类的引用。
  • 在网页表单中放置一个 data source 控件对象。
  • 通过选择对象来配置 data source。

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

更新对于 ASP.NET 应用程序内的 Access 数据库来说是有问题的,这是因为 Access 数据库是一个纯文本并且默认的 ASP.NET 应用程序账户可能有写数据库文件的权限。

延伸 · 阅读

精彩推荐
  • ASP教程asp中通过fso读取和生成UTF-8编码的txt

    asp中通过fso读取和生成UTF-8编码的txt

    利用fso.OpenTextFil读取UTF-8文件或者用FSO.save生成UTF-8文件时乱码解决办法生成静态页使用的方法是读取asp页面的html代码,保存为html文件,这种方法...

    ASP之家4712019-07-07
  • ASP教程asp实现后台添加wma视频文件前台显示

    asp实现后台添加wma视频文件前台显示

    想用asp来实现后台添加wma视频文件,前台显示所添加的这个视频文件,本文提供实现代码...

    服务器之家3402019-07-10
  • ASP教程一种理论上最快的Web数据库分页方法

    一种理论上最快的Web数据库分页方法

    出了一种理论上最佳的分页方法,本篇我们就来详细说说这种最佳的分页方法。 一:构思。 在设计Web数据库时,如果我们要编历每一条纪录,那么只有采取...

    asp教程网5642019-10-26
  • ASP教程asp 中文乱码问题解决方法

    asp 中文乱码问题解决方法

    不管什么语言乱码问题都存在,asp也不例外,本文将介绍asp中解决乱码方法,需要的朋友可以参考下...

    ASP之家6472019-07-10
  • ASP教程ASP所有的Session变量获取实现代码

    ASP所有的Session变量获取实现代码

    在程序调试中,有时候需要知道有多少Session变量在使用,她们的值如何?由于Session对象提供一个称为Contents的集合(Collection),我们可以通过For...Each循环来...

    asp教程网3532019-09-10
  • ASP教程ASP.NET 简介

    ASP.NET 简介

    本节对 ASP.NET 进行概括,介绍了 ASP.NET 的服务器技术、开发工具以及文件扩展名。 经典 ASP Active Server Pages(动态服务器页面) ASP ,全称 Active Server Pages(...

    未知1392023-05-08
  • ASP教程NAV导致IIS调用FSO失败的解决方法

    NAV导致IIS调用FSO失败的解决方法

    症状: 当你浏览调用FileSystemObject的ASP页面时, 对页面的请求处于停止状态并最终导致页面在浏览器中的超时。 原因: 这种问题是因为 Norton Antivirus 软件...

    asp教程网5492019-11-01
  • ASP教程一份ASP内存的释放的实验报告

    一份ASP内存的释放的实验报告

    实验目的:验证主动释放内存变量是否有价值. 实验原始代码: script language=vbscript runat=server Dim temp1,temp2 temp1 = space(1024*1024*50) 50MB for i = 0 to 5000000 延迟 next t...

    asp教程网5052019-10-30