c#

位置:IT落伍者 >> c# >> 浏览文章

C#高级编程:通过数据适配器进行更新[2]


发布日期:2019年09月03日
 
C#高级编程:通过数据适配器进行更新[2]
——此文章摘自《C#高级编程(第版)》定价元 特价元 购买

RegionID // Defines the SOURCE column

DataRowVersionDefault

null));

aCommandUpdatedRowSource = UpdateRowSourceOutputParameters;

无论何时DataAdapter执行这个命令输出参数都应映射回数据行的源在本例中是DataTable中的一行该标志说明了应更新什么数据—— 存储过程有一个输出参数映射回DataRow它应用的列是RegionID这是在命令定义中定义的

UpdateRowSource的值如表所示

UpdateRowSource值说 明Both

存储过程可以返回输出参数和一个完整的数据库记录这些数据源都用于更新源数据行FirstReturnedRecord

该命令返回一个记录该记录的内容应合并到最初的源DataRow中当给定的表有许多默认(或计算)列时使用这个值很有用因为在执行插入语句之后这些行需要与客户机上的DataRow同步例如INSERT (列) INTO (表) WITH (主键码)SELECT (列) FROM (表) WHERE (主键码)返回的记录应合并到源数据行上None删除从该命令返回的所有数据OutputParameters命令的任何输出参数都映射到DataRow的对应列上

更新现有的行

更新DataTable中一个已经存在的行只需使用带有一个列名或列号的DataRow索引器即可如下面的代码所示

r[RegionDescription]=North West England;

r[] = North East England;

这两个语句是等价的(在本例中)

Changed RegionID description

Eastern Unchanged

WesternUnchanged

NorthernUnchanged

SouthernUnchanged

North West EnglandModified

在更新数据库前被更新的行应把其状态设置为Modified其值如上所示

删除一行

删除一行需要调用Delete()方法rDelete();

被删除的行把其行状态设置为Deleted但不能从被删除的DataRow中读取列因为它们已经不再有效当调用适配器的Update()方法时所有被删除的行都会使用DeleteCommand在本例中是执行RegionDelete存储过程

[] []

               

上一篇:C#高级编程:通过数据适配器进行更新[1]

下一篇:.NET 4特性聚焦:代码契约