alm中项目自定义商品属性只显示用户属性是为什么

来插入、修改和检索数据大多數数据库系统都含有这样的结构:这些结构可将一系列SQL语句组成一组使其作为一个单个的、可复用的单元来执行。存储过程就是这样一个唎子另一个例子是用户定义函数(UDF) ,我们将在步骤 9中详细地讨论该结构

SQL 的核心设计针对的是数据集。SELECT 、UPDATE 和 DELETE 本质上应用于相应表中的所有記录并且只受到WHERE 子句的限制然而,仍有许多语言功能被设计成每次只处理一条记录并且处理标量数据我们可以使用 来每次一个地循环處理一组记录。字符串操作函数如LEFT 、CHARINDEX 和PATINDEX ,针对的是标量数据SQL 还包括流程控制语句,如 IF 和

是所有.NET 汇编程序所使用的运行时环境其结果昰,可以使用托管代码来在SQL Server 2005 数据库中创建存储过程和UDF 就是说,用户可以 Visual Basic 类中的一个方法来创建存储过程或 UDF 这使得存储过程和UDF 能够利用 .NET Framework Φ以及定制类中的功能。

本教程中我们将探讨怎样创建托管存储过程和UDF ,以及怎样将它们集成到我们的 Northwind 数据库中让我们开始吧!

注意: 与其对应的 SQL 对象相比,使用托管数据库对象具有一定的优势其主要优势在于:用户可以使用丰富而熟悉的编程语言,可以重用现有的玳码和逻辑但是,在处理数据集而不涉及很多过程逻辑时托管数据库对象可能效率要低一些。对于与T-SQL 相比使用托管代码的优点的更詳细的讨论,请查阅

迄今为止,我们所有的教程使用的都是web 应用程序的 App_Data 文件夹中的一个Microsoft SQL Server 2005 Express Edition 数据库文件将数据库存放于 App_Data 中使得这些教程易於发布和管理,其原因是所有文件都存放于同一目录中因而对教程中的内容进行测试时不需要额外的配置步骤。

本教程的相关下载包含兩个数据库文件– website 来调试一个SQL Server 对象时,要禁用连接池功能上面显示的连接字串禁用连接池功能(“Pooling=false”) 。如果不打算通过mandText = 应用程序可以使鼡这些托管存储过程还需要将这些过程添加到软件架构中的数据访问层和业务逻辑层。在本步骤中我们将两个新方法添加到一个名为NorthwindWithSprocs 嘚 Typed DataSet 的ProductsTableAdapter 中,ProductsTableAdapter 最初是我们在为强类型 DataSet的TableAdapters创建新的存储过程教程中创建的在步骤7 中,我们会将相应方法添加到 BLL 中

打开AdvancedDAL 文件夹下的 应用程序,使其与SQL Debugger 相集成并且禁用连接池功能在调试存储过程 教程的步骤 2 中已详细讲述了这些步骤。

配置好 website 设置为启动项目然后开始调试当你访問一个页面,而该页面调用一个含有断点的托管对象时程序会暂停,由调试器接管程序的控制权此时,我们可以在调试器中逐步调试玳码(如图28 所示)

步骤13:手工编译和部署托管数据库对象

,并且打算使用托管数据库对象则需要手工创建并部署这些对象。手工过程包括四个步骤:

  1. 创建一个文件来存放托管数据库对象的源代码
  2. 将该对象编译到一个汇编文件中
  3. 在 SQL Server 中创建一个数据库对象,使该对象指向彙编文件中的相应方法

为了演示这些步骤,我们创建一个新的托管存储过程该过程返回那些UnitPrice 值大于指定值的产品。在计算机上新建一個名为mandText =

C:\WINDOWS\ 编程语言如 C# 来创建数据库对象了。在本教程中我们创建了两个托管存储过程和一个托管用户定义函数。

Standard Edition 的用户来说则只能手笁完成创建、编译和部署过程,在步骤13 中可以看到这点

}

无法为 '%s' 生成别名

%ls: 无法转换参数 %ls: 嘚到的列版本矢量将包含太多的条目。

由于该项目可能在拥有匿名订阅或客户端订阅的发布中无法进行更改。请将 @force_reinit_subscription 设置为 1确认将重新初始化此类订阅。

未能成功删除用于合并复制的系统表

未能成功创建用于合并复制的系统表。

无法删除发布 '%s' 对应的快照代理

不允许在發布 '%s' 上使用订阅类型 '%s'。

当发布上存在订阅时无法更改其属性 '%s'。

无法删除目录 '%ls'请查看 xp_cmdshell 的安全上下文,并关闭其他可能正在访问该目录的進程

订阅服务器上的订阅不存在。

无法设置复制数据库选项 '%s'除非数据库是发布数据库或分发数据库。

所提供的项目冲突解决程序无效戓不存在

发布名称必须是唯一的。而指定的发布名称 '%s' 已在使用

分发服务器未正确安装。未能允许数据库用于发布

分发服务器未正确咹装。未能禁止数据库用于发布

另一个具有不同列跟踪选项的发布中已存在项目 '%s'。

该行不存在无法删除。

分发服务器未正确安装

另┅个具有不同项目冲突解决程序的发布中已存在项目 '%s'。

无法将项目筛选器添加到发布 '%s' 的项目 '%s' 中

无法将项目筛选器从发布 '%s' 的项目 '%s' 中删除。

無法将项目从发布 '%s' 中删除

事务已回滚。无法执行触发器请重新尝试该事务。

发布已激活无法更改项目 '%s'。

该优先级属性对本地订阅服務器无效

优先级值应大于 100.0。

保持期必须大于或等于 0并且不能超过 9999 年 12 月 31 日。

对象 '%s' 已存在具有不同 %s 值的项目

当前数据库尚不允许发布。

無法为合并复制发布表 '%s'因为该表具有时间戳列。

无法重新发布表 '%s'

指定的代理类型已存在配置文件名 '%s'。

兼容级别不能小于 60

此数据库的兼容级别必须设置为 70 或更高,才允许将其合并发布

您试图在其中插入、更新或删除数据的表 '%s' 已标记为只读。只有合并过程可以执行这些操作

无法删除配置文件。该配置文件可能未定义或被定义为默认配置文件。

该配置文件正在使用无法删除。

指定的配置文件已存在參数名 '%s'

无法在表 '%s' 上创建项目,因为该表中的列多于 %d 个

无法验证使用循环联接筛选器的合并项目。

无法更新订阅服务器信息行

只能在發布服务器上添加或更改项目。

只有表对象才能作为 "table" 项目发布以便进行合并复制。

生成副本别名时遇到问题

订阅服务器数据库 '%s' 不能订閱发布 '%s'。

发布 '%s' 包含没有 rowguidcol 列的表所以不支持非同步类型。

只能指派大于或等于 0 且小于 100 的优先级

无法正确获得许可证信息。

无法正确获得蝂本信息

当前正在对您试图在其中插入、更新或删除数据的表 '%s' 进行升级或初始化,以便进行合并复制在升级过程完成且快照已成功运荇之前,不允许在发布服务器上修改数据在升级过程完成或初始快照已成功应用并且它已和发布服务器同步之前,禁止在订阅服务器上修改数据

在为发布服务器运行快照代理并且为所有订阅服务器运行合并代理后,合并复制升级过程才会完成

无法删除订阅服务器 '%s'。已存在订阅

可更新的订阅服务器存储过程 '%s' 不存在。

'%s' 中的 '%s' 值无效没有为 '%s' 可更新订阅启用发布。

立即更新订阅: 订阅服务器插入/更新的 xml 值将作為 NULL 复制到发布服务器

无法删除 '%s' 中的同步更新存储过程 '%s'。

可更新的订阅: 无法在订阅服务器上更新 text、ntext 或 image 值

可更新的订阅: 无法更新标识列。

鈳更新的订阅: 无法更新时间戳列

可更新的订阅: 正在回滚事务。

行计数验证请求已提交到异类发布服务器 %s (用于发布 %s 的项目 %s)验证结果将发咘到分发历史记录中。

可更新的订阅: 发布服务器和订阅服务器上的行不匹配请运行分发代理来刷新订阅服务器上的行。

可更新的订阅: 已複制的数据不可更新

可更新的订阅: 不支持 INSERT 和 DELETE 操作,除非已发布的表有时间戳列

可更新的订阅: 不允许对具有标识列或时间戳列的表执行 INSERT 操作,除非在订阅服务器上定义了主键

可更新的订阅: 不允许对具有标识列或时间戳列的表执行 UPDATE 操作,除非在订阅服务器上定义了主键

無法验证项目 '%s'。该项目未激活

表 '%s' 通过了行计数(%s)和校验和验证。没有为任何 text 或 image 列比较校验和

日志读取器代理启动消息。

检测无日志记录嘚代理关闭

检测没有动态地将历史信息记录到日志中的复制代理。

从分发数据库中删除复制代理历史记录

复制: 已删除过期的订阅

从分發数据库中删除复制的事务。

检测并删除已发布数据库中的过期订阅

详细历史记录代理配置文件。

用于详细历史记录日志的代理配置文件

慢速链接代理配置文件。

用于低带宽连接的代理配置文件

Windows 同步管理器配置文件

Windows 同步管理器所用的配置文件。

无法清除分发历史记录表

复制代理在 %ld 分钟内没有记录任何进度消息。这表明代理已停止响应或系统活动过多请确保正在将记录复制到目标,并且与订阅服务器、发布服务器和分发服务器的连接仍然是活动的

检测到所有正在运行的复制代理的检测信号。

代理关闭有关详细信息,请参阅作业 '%s' 嘚 SQL Server 代理作业历史记录

表 '%s' 在快速检查失败后,通过了完整行计数验证DBCC UPDATEUSAGE 将自动启动。

请求了有条件快速行计数方法但未指定所需的行数將使用快速方法。

传递了所需的校验和值但由于请求的是仅限行计数检查,将不比较校验和值

已为 %s 生成 %s 的所需行计数值。

复制: 订阅服務器未通过数据验证

复制: 订阅服务器已通过数据验证

代理历史记录清除: %s

重新初始化未通过数据验证的订阅

重新初始化所有未通过数据验证嘚订阅

已在验证失败后重新初始化了订阅服务器 '%s' 上对发布 '%s' 中项目 '%s' 的订阅。

复制: 验证失败后重新初始化了订阅

订阅服务器 '%s' 上对发布 '%s' 中项目 '%s' 嘚订阅未通过数据验证

订阅服务器 '%s' 上对发布 '%s' 中项目 '%s' 的订阅已通过数据验证。

已在同步失败后重新初始化了订阅服务器 '%s' 上对发布 '%s' 中项目 '%s' 的訂阅

复制: 代理自定义商品属性关闭

已为 %s 生成 %s 的所需行计数值和 %s 的所需校验和值。

未检测到某些复制代理的检测信号已将这些代理的状態更改为 '失败'。

无法删除服务器 '%s'因为该服务器用作复制过程中的分发服务器。

无法删除服务器 '%s'因为该服务器用作复制过程中的发布服務器。

无法删除服务器 '%s'因为该服务器用作复制过程中的订阅服务器。

无法删除服务器 '%s'因为该服务器用作复制过程中对应于远程发布服務器 '%s' 的订阅服务器。

验证失败对象 '%s' 不存在。

该订阅未初始化请首先运行分发代理。

用于已复制的排队事务读取器的代理配置文件

已存在对该发布的推送订阅。请用 sp_subscription_cleanup 删除已失效的推送订阅

正在跳过用信号通知的错误。

已删除 %d 个匿名订阅

应用复制的命令时在订阅服务器上找不到该行。

遇到数据一致性错误时继续

用于跳过数据一致性错误的代理配置文件。它只能由 SQL Server 订阅服务器使用

异类订阅服务器无法使用该代理配置文件。

您无权运行用于推送订阅的代理请确保指定了代理参数 'SubscriptionType'。

已使现有的发布快照无效请重新运行快照代理以生荿新的快照。

无法进行更改因为已生成了快照。请将 @force_invalidate_snapshot 设置为 1 以强制进行更改并使现有的快照无效

无法进行更改,因为存在活动订阅請将 @force_reinit_subscription 设置为 1 以强制进行更改并将活动订阅重新初始化。

无法附加订阅文件 '%s'请确保该文件是有效的订阅副本文件。

当日志读取器代理正在複制该数据库时不能运行 '%s'。

无法添加项目允许使用 Data Transformation Services (DTS)进行可转换订阅的发布只能包括表和作为表发布的索引视图。

该发布允许 DTS所以不支持校验和验证。请使用仅限于行计数的验证

为 DTS 水平分区设置的项目不支持验证。

异类订阅服务器不支持验证

无法添加对发布的异类訂阅。没有为异类订阅启用该发布

大容量服务器对服务器的配置文件

合并代理配置文件已经优化,适用于服务器之间的大容量同步

服務器用户 '%s' 不是数据库 '%s' 中的有效用户。请先在该数据库中添加该用户帐户或 'guest' 用户帐户

指定的安全模式要求将服务器 '%s' 注册为链接服务器。请使用 sp_addlinkedserver 添加该服务器

无法将订阅数据库复制到现有数据库中。

发布数据库处于简单恢复模式无法在该数据库上设置复制数据库选项 'sync with backup'。

无法为发布 '%s' 创建合并复制发布访问列表(PAL)数据库角色此角色由复制用来控制对发布的访问。请验证您是否具有足够的权限可以在发布数据库Φ创建角色

分区 ID 必须大于或等于 0。

无法获取分区 ID 信息

找不到生成分区快照的位置。请验证是否存在为发布指定的有效快照文件夹这鈳以是与分发服务器关联的默认文件夹或与发布关联的备用文件夹。

无法创建动态快照作业来生成动态快照

无法启动分区快照作业。请驗证 SQL Server 代理是否正在分发服务器上运行

在重新发布服务器上找不到根目录发布信息。

找到对 '%ls' 的推送订阅无法为推送订阅添加请求订阅代悝。

无法为项目 '%s' 生成合并复制存储过程存储过程是在运行快照代理或者执行数据定义语言操作时在发布服务器上生成的;当快照由合并玳理应用时它们在订阅服务器上生成。请验证代理是否具有创建过程所需的相应权限以及这些过程是否尚不存在

如果存在对发布的订阅,则不能更改 "启用异类订阅" 属性

对于为非 SQL Server 订阅启用的发布,无法修改属性 "%s"

对等发布不支持 %s。请更改参数 '%s' 的值

无法修改属性 '%s'。该发布茬对等拓扑中使用而后者不允许在创建发布后修改此属性。

为异类订阅启用的发布不支持 %s请更改 '%s' 参数值。

发布 "%s" "%s"因此无法将该发布的兼容级别设置为低于 %d。若要将兼容级别设置为更低请禁用该功能,然后调用存储过程 sp_changemergepublication 以降低兼容级别

动态快照仅对合并发布有效。

分區快照处理无法完成无法从分发数据库中的 MSsnapshot_history 表检索最大时间戳信息。请确保标准快照最新而且可用

重新发布服务器从其发布服务器获取的重新发布范围不够大,无法分配指定的 @pub_identity_range

重新发布服务器从其发布服务器获取的重新发布范围不够大,无法分配指定的 @identity_range

重新发布服務器没有在根发布服务器 '%s' 上可以分配给其订阅服务器的标识值范围。请确保重新发布服务器拥有对根发布服务器上发布的服务器订阅然後运行合并代理以便与根发布服务器同步。

由于标识列的数据类型值都已经使用无法为发布服务器分配新的标识值范围。请更改标识列Φ的数据类型

重新发布服务器没有在根发布服务器上可以分配给其订阅服务器的标识值范围。请运行合并代理以便与根发布服务器同步

无法在发布服务器上刷新标识范围和/或检查约束。请确保符合下列条件: 标识列中的值尚未达到标识列中数据类型的最大值而且进行最後插入的用户拥有删除和重新创建检查约束的特权。

无法为项目 "%s" 分配标识范围没有对该项目启用标识范围自动管理功能。

范围不足无法为订阅服务器分配新范围。

无法为表 %s 添加、删除或更改标识范围检查约束此约束由复制用来自动管理标识范围。如果在表中进行最后插入的用户无权对表进行架构更改则通常会出现此错误。如果在发布服务器上出现此错误则运行 sp_adjustpublisheridentityrange;如果在订阅服务器上出现此错误,則运行合并代理

在 MSmerge_identity_range 表中找不到订阅服务器的标识范围分配条目。重新初始化订阅

已为参数 @host_name 指定了一个值,但是发布中没有项目使用 HOST_NAME() 进荇参数化筛选

已为参数 @host_name 指定了一个值,但是发布中没有项目使用 SUSER_SNAME() 进行参数化筛选

该发布不使用动态筛选。

标识范围值不能为 NULL

无法添加启用了自动标识范围管理的项目 "%s"。在某个启用了自动标识范围管理的事务发布中已发布了该项目

找不到指定发布 '%s' 的常规快照作业。

无法对当前数据库执行存储过程 sp_adjustpublisheridentityrange因为该数据库是重新发布服务器或订阅服务器。若要调整重新发布服务器或订阅服务器上的标识范围请與根发布服务器同步。

无法获取一批行的元数据

在对表 %s 的批删除尝试中删除行失败。

无法在仅限下载的项目 %s 上执行批删除

尝试对表 %s 进荇批删除时,删除的行超过了应该删除的行请停止合并代理,然后再重新启动

无法删除筛选器 '%s'。找不到为 @filtername 参数指定的筛选器

当从 '%s' 数據库运行此过程时,参数 '%s' 不能为 NULL 或为空

如果不是正从 '%s' 数据库运行此过程,则参数 '%s' 必须为 NULL

针对表 %s 检查需要分配新标识范围的发布服务器夨败。每次运行合并代理和快照代理时都会进行此检查请重新运行合并代理或快照代理。

无法为表 %s 设置发布服务器标识范围请验证在創建项目时是否指定了相应的范围,然后重新运行快照代理

在该订阅服务器上对 SQL Server 2005 元数据和触发器进行合并复制升级失败。

MSmerge_tombstone 中已存在表 %s 中偠在批插入过程插入的一行或多行;合并复制无法使用批插入功能将行从一个分区移动到另一个分区时,通常会出现此情况不需要执荇任何操作,但是如果频繁出现此情况请验证数据是否是以最佳方式进行分区的。批插入可以提高合并复制的性能

MSmerge_contents 中已存在表 %s 中要在批插入过程插入的一行或多行;合并复制无法使用批插入功能。将行从一个分区移动到另一个分区时通常会出现此情况。不需要执行任哬操作但是如果频繁出现此情况,请验证数据是否是以最佳方式进行分区的批插入可以提高合并复制的性能。

表 %s 中要更新的一行或多荇包含列 %s 中的更改该列在一个或多个筛选器中使用;合并复制无法对这些更改进行批处理。不需要执行任何操作但是如果频繁出现此凊况,请验证数据是否是以最佳方式进行分区的批更新可以提高合并复制的性能。

在批更新过程中仅更新了表 %s 中的 %ld 行(共 %ld 行);其他行因为巳被删除而无法更新不需要执行任何操作,但是如果频繁出现此情况请确定是否可以避免更新与删除的冲突。批更新有助于提高性能

无法从发布 %s 中删除项目 %s。在此发布中这是唯一一个使用参数化筛选器的项目。如果删除此项目则该发布将变为静态发布,这需要重噺初始化所有订阅服务器若要删除项目并重新初始化所有活动订阅,请将 sp_dropmergepublication 的 @force_reinit_subscription 参数值指定为 1

无法在分发服务器上更改动态快照作业计划。

由于出现一个或多个错误无法更改动态快照作业计划。

表 '%s' 的标识列的数据类型为 tinyinttinyint 所能提供的数字无法满足合并自动标识范围的需要。请更改标识列使之具有较大的数据类型,然后添加启用了合并自动标识范围管理的合并项目

对于指定的项目,找不到标识列所允许嘚最大或最小标识号

当项目具有自定义商品属性业务逻辑冲突解决程序时,不允许项目成为逻辑记录的一部分

合并进程无法清除发布 "%s" 嘚冲突表 "%s"。

在分发服务器上记录发布服务器 '%s'、publisher_db '%s'、发布 '%s' 和项目 '%s' 的标识范围分配信息时检测到标识范围分配不正确。

发布 '%s' 的动态筛选器属性設置的不正确如果该发布使用参数化筛选器,请使用 sp_changemergepublication 将该值重置为 True否则,重置为 False

无法获取数据库 '%s' 的复制合并管理应用程序锁。出现這种情况的原因可能是: 在试图更改架构(DDL)或管理过程时正在运行活动的快照

发布 '%s' 的复制合并管理存储过程 '%s' 失败。出现这种情况的原因可能昰在调用该管理过程时正在运行活动的快照

无法准备发布 '%s' 中的项目 '%s' 以进行合并复制。

无法为对象 '%s' 创建合并复制触发器

无法为合并复制發布 '%s' 创建发布视图。

订阅服务器 '%s'、订阅服务器数据库 '%s'、Web 服务器 '%s' 的日志设置不存在

只有添加了计算列 "%s" 所依赖的对象 "%s" 后,才能将该计算列添加到发布中

对于发布 '%s',找不到 job_id 为 '%s' 的动态快照作业的有效命令行

无法在发布 '%s' 中更新 job_id 为 '%s' 的动态快照作业的动态快照位置。

无法更改给定发咘的一个或多个动态快照作业中的动态快照位置

无法还原为发布 '%s' 中的项目 '%s' 分配的最大标识值。

在分发服务器上找不到为发布 '%s' 中的项目 '%s' 分配的最大标识值

此版本的 SQL Server 不支持发布。正在删除现有发布

无法将项目 '%s' 添加到发布 '%s' 中。该发布已包含 256 个项目这是最大值。

无法将带有稀疏列或列集的项目 '%s' 添加到合并发布中因为合并复制不支持稀疏列和列集。

操作快照模式必须为本机模式。不支持 SQL Server Compact 订阅服务器要求的芓符模式

无法重新初始化对发布 '%s' 的订阅 '%s:%s' 中的项目 '%s'。已为对等事务复制启用该发布这样就不允许通过快照重新初始化订阅。请删除订阅然后再重新创建。

无法重新初始化订阅已为对等事务复制启用该发布,这样就不允许通过快照重新初始化订阅请删除订阅,然后再偅新创建

无法从复制管理用户架构 [%s] 发布对象。此架构拥有所有复制过程和元数据表但是它不能拥有已发布的对象。请对将发布的对象使用其他架构

对等拓扑要求所有节点上的发布中的项目都完全相同才能进行同步。发布 [%s].[%s].[%s] 中的项目与 [%s].[%s].[%s] 中的项目不相同

项目只能包含在单個对等发布中。[%s].[%s] 已经包含在对等发布 '%s' 中

对等拓扑要求每个发布服务器上的发布名称都完全相同。您正试图重新发布已在对等发布 [%s].[%s].[%s] 中发布嘚对象 [%s].[%s]

执行对等转发命令时出错。请与客户支持服务部门联系

找不到 %s:%s:%s 的对等方。如果执行存储过程 sp_requestpeerresponse 时遇到此错误请在尝试再次调用該过程之前验证是否已创建了订阅。如果在其他情况下遇到此错误请与客户支持服务部门联系。

对等拓扑要求每个发布服务器上的发布洺称都完全相同发布 [%s].[%s].[%s] 的分发代理正试图对发布 [%s].[%s].[%s] 中的项目进行同步。

如果指定的源对象是作为 'aggregate schema only' 类型的项目发布的则它必须是用户定义的聚合对象。

%s 的复制监视刷新器

如果指定的源对象是作为 'synonym schema only' 类型的项目发布的,则它必须是同义词

如果 %s 没有定义了代理帐户的作业,则只囿 sysadmin 固定服务器角色的成员才可以修改它

用于 OLEDB 流式处理的分发配置文件

使用 OLEDB 流式处理为处理 LOB 数据启用的分发代理配置文件。

}

在 中我们介绍了如何创建记录級 DataList 。如同标准的可编辑 GridView 一样 DataList 中的每个记录都包含一个 Edit 按钮,当单击该按钮时将使记录变为可编辑的然而此记录级的编辑适用于偶尔更噺的数据,但是某些案例场景需要用户编辑许多记录如果用户需要编辑许多记录,不得不每次都单击 Edit 进行更改,然后单击 Update 大量的单擊数量将会妨碍生产效率。在这种情况下一种更好的选择是提供完全可编辑的 DataList ,它的所有记录都处于编辑模式并且它的值可以通过单擊页面上的 “Update All” 按钮来进行编辑(参见图 1 )。

图1 :完全可编辑的 DataList 中的每个记录

本教程中我们将介绍如何使用户通过完全可编辑的DataList 来更新供应商的地址信息。

在前一篇教程中我们创建标准的、记录级可编辑 DataLis t 时,使用了两个模板:

  • ItemTemplate—— 包含只读用户界面(Web Label 控件用于显示每种產品的名称和价格)

对于完全可编辑的 DataList ,我们希望所有的 DataListItem 使用可编辑的界面来呈现实现此目标的最简单的方法是在 ItemTemplate 中定义可编辑界面。为编辑供应商的地址信息可编辑界面应包含文本形式的供应商名称,还应包含用于地址、城市和国家值的 TextBox

首先打开 DataTable 和 DataAdapter 类支持仅当修妀、删除和新的记录导致任何数据库通信时,才进行批处理更新DataTable 中的每行都有一个 ,用于指示该行是否添加到 DataTable 、是否从其中删除、是否修改或者保持不变当最初填充 DataTable 时,所有的行都标记为不变更改任何行的列的值,则将该行标记为修改


  

通过此添加的代码,DAL 的 Update 方法只為那些与地址有关的值已改变的记录向数据库发送UPDATE 语句

或者,可以对传入的地址字段和数据库数据之间是否不同进行跟踪如果没有不哃,则将调用传到 DAL 的 Update 方法如果使用 DB 直接方法,此方法能很好地工作因为 DB 直接方法不传递下面这种 SuppliersRow 实例,即它的 RowState 可以被检查以确定是否實际需要数据库调用

方法重载,可以优化此工作流程然后,它可以对数据库进行一次调用以便从 Suppliers 表获得所有的记录然后可以枚举两個结果集,只有那些出现更改的记录才可以被更新

本教程中,我们了解了怎样创建完全可编辑的 DataList 从而使用户可以快速编辑多个供应商嘚地址信息。我们首先在 DataList 的 ItemTemplate 中定义编辑界面—— 用于供应商地址、城市和国家值的 Web 文本框 控件然后,在 DataList 的上面和下面添加 “Update All” 按钮当鼡户进行更改并单击其中的一个 “Update All”

}

我要回帖

更多关于 自定义商品属性 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信