代码改变世界

使用数据源控件简化操作(1)

2006-04-27 10:33  Clingingboy  阅读(638)  评论(0编辑  收藏  举报
     asp.net2.0新的数据源控件使得我们可以不写代码也可以实现数据绑定
  
1.SqlDataSource 表示数据绑定控件的 SQL 数据库

我们可以把以前数据绑定的方法,跟使用数据源控件来相比较

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
                SelectCommand
="SELECT DISTINCT * FROM [vw_aspnet_Users]"></asp:SqlDataSource>

ConnectionString属性用于获取连接字符串,连接字符串存储于Web.config中

SqlDataSource有四个属性分别是

SelectCommand

InsertCommand

UpdateCommand

作用就是对数据库的SQL语句进行读取,插入,更新的操作.

其设置的值也分为两种格式,设置的属性为

SelectCommandType

InsertCommandType

UpdateCommandType

其中有两个枚举可选

StoredProcedure 相应的文本属性中包含的文本为存储过程的名称。 
Text 相应的文本属性中包含的文本为 SQL 查询或命令。 

(2)设置DataSourceMode 属性可以设置获取或设置 SqlDataSource 控件获取数据所用的数据检索模式

默认情况下为DataSet,或者为DataReader

当 DataSourceMode 属性设置为 DataSet 值时,数据加载到 DataSet 对象中,并存储在服务器的内存中。这使得用户界面控件(例如 GridView)可以提供排序、筛选和分页的功能。

当 DataSourceMode 属性设置为 DataReader 值时,数据由 IDataReader 对象来检索,该对象为只进且只读的游标。

(3)使用参数集合

当需要使用参数的时候SqlDataSource 控件有五个参数集合可选



以下为参数表

参数类

说明

Parameter

基参数类。用于绑定到局部变量或任何使用 DefaultValue 属性的静态字符串。

ControlParameter

可用于绑定到控件的属性或方法返回值的参数。

CookieParameter

可用于绑定到 cookie 的值的参数。

FormParameter

可用于绑定到当前 Web 窗体页的属性的参数。

QueryStringParameter

可用于绑定到传递给查询字符串上 Web 窗体页的值的参数。

SessionParameter

可用于绑定到会话变量的值的参数。

ProfileParameter

可用于绑定到 ASP.NET 配置文件属性值的参数。


可以使用命令和查询编辑器来设置参数



(4)使用并发控制技术 

SqlDataSource.ConflictDetection 属性用于获取或设置一个值,该值指示当基础数据库中某行的数据在更新和删除操作期间发生更改时,SqlDataSource 控件如何执行该更新和删除操作

ConflictDetection 属性确定旧值和新值的参数是否应用于 Update 方法。例如,如果 SelectCommand 属性所指定的命令返回具有列 NameNumberDataTable 对象,并且 ConflictDetection 属性设置为 OverwriteChanges 值,则会为 Update 方法创建 NameNumber 的参数。如果 ConflictDetection 属性设置为 CompareAllValues 值,则会为 NameNumberoriginal_Nameoriginal_Number 创建参数。(原始值的参数的确切名称取决于 OldValuesParameterFormatString 属性。)然后,SqlDataSource 控件确定在 UpdateMethod 属性中指定的 Update 方法是否具有匹配的参数。

并发控制是数据存储区使用的一种技术,可用于在多个客户端访问和操作相同数据时控制如何在存储区中读取和更改这些数据。例如,一个客户端读取数据并呈现给用户,而另一个客户端读取相同的数据并呈现给其他用户。如果这两个用户都更新数据并将其提交到数据存储区,则可能会出现某种意外的结果,因为两个客户端可能会更新相同数据的不同值。这种现象被视为冲突。将 ConflictDetection 属性设置为 CompareAllValues 值,Update 方法就可以根据需要将旧值和新值与原始数据源进行比较,以便检测冲突并处理它们。