知识大全 使用DataAdapter执行批量更新
Posted 属性
篇首语:没有激流就称不上勇进,没有山峰则谈不上攀登。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用DataAdapter执行批量更新相关的知识,希望对你有一定的参考价值。
使用DataAdapter执行批量更新 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在以前版本的 ADO NET 中 使用 DataSet 中的更改来更新数据库时 DataAdapter 的 Update 方法每次更新数据库的一行 因为该方法循环访问指定 DataTable 中的行 所以 会检查每个 DataRow 确定是否已修改 如果该行已修改 将根据该行的 RowState 属性值调用相应的 UpdateCommand InsertCommand 或 DeleteCommand 每一次行更新都涉及网络与数据库之间的双向数据传输
在ADO NET 中 DataAdapter 公开了UpdateBatchSize 属性 将 UpdateBatchSize 设置为正整数值将使对数据库的更新以指定大小的批次进行发送 例如 如果将 UpdateBatchSize 设置为 会将 个独立的语句组合在一起并作为一批提交 将 UpdateBatchSize 设置为 将导致 DataAdapter 使用服务器可以处理的最大批次的大小 如果将其设置为 则禁用批量更新 因为此时每次发送一行
执行非常大的批次可能会降低性能 因此 在实现应用程序之前 应测试最佳的批次大小设置
使用 UpdateBatchSize 属性
启用了批量更新后 DataAdapter 的 UpdateCommand InsertCommand 和 DeleteCommand 的 UpdatedRowSource 属性值应设置为 None 或 OutputParameters 在执行批量更新时 命令的FirstReturnedRecord 或 Both 的UpdatedRowSource 属性值无效
下面的过程演示如何使用 UpdateBatchSize 属性 该过程采用两个参数 一个 DataSet 对象 其中包含代表 Production ProductCategory 表中的ProductCategoryID 和 Name 字段的列 一个代表批次大小的整数(批次中的行数) 该代码创建一个新的 SqlDataAdapter 对象 设置其 UpdateCommand InsertCommand 和 DeleteCommand 属性 该代码假定 DataSet 对象已修改了行 它设置 UpdateBatchSize 属性并执行更新
protected void btnUpdateAddress_Click(object sender EventArgs e)
SqlDataAdapter EmpAdapter = new SqlDataAdapter();
DataTable EmpDT = new DataTable();
SqlConnection DBConSelect = new SqlConnection();
SqlConnection DBConUpdate = new SqlConnection();
SqlCommand SelectCommand = new SqlCommand();
SqlCommand UpdateCommand = new SqlCommand();
// Using different connection objects for select and updates from the
// Northwind database
DBConSelect ConnectionString =
ConfigurationManager ConnectionStrings[ DSN_NorthWind ] ConnectionString;
DBConUpdate ConnectionString =
ConfigurationManager ConnectionStrings[ DSN_NorthWind ] ConnectionString;
// Reading all records from the Employees table
SelectCommand CommandText = SELECT top * FROM EMPLOYEES ;
SelectCommand CommandType = CommandType Text;
SelectCommand Connection = DBConSelect;
UpdateCommand CommandText = UPDATE EMPLOYEES SET Address=@Address +
City=@City Region=@Region Country=@Country ;
UpdateCommand CommandType = CommandType Text;
UpdateCommand Connection = DBConUpdate;
SqlParameter AddressParam;
AddressParam = new SqlParameter( @Address
SqlDbType VarChar Address );
SqlParameter CityParam;
CityParam = new SqlParameter( @City SqlDbType VarChar City );
SqlParameter RegionParam;
RegionParam = new SqlParameter( @Region SqlDbType VarChar Region );
SqlParameter CountryParam;
CountryParam = new SqlParameter( @Country
SqlDbType VarChar Country );
UpdateCommand Parameters Add(AddressParam);
UpdateCommand Parameters Add(CityParam);
UpdateCommand Parameters Add(RegionParam);
UpdateCommand Parameters Add(CountryParam);
// Setting up Data Adapter with the Select and Update Commands
// The Select mand will be used to retrieve all employee
// information from the Northwind database and the Update mand
// will be used to save changes back to the database
EmpAdapter SelectCommand = SelectCommand;
EmpAdapter UpdateCommand = UpdateCommand;
EmpAdapter Fill(EmpDT);
DBConSelect Close();
// Looping through all employee records and assigning them the new
// address
foreach (DataRow DR in EmpDT Rows)
DR[ Address ] = W th Street Suite ;
DR[ City ] = Edina ;
DR[ Region ] = Minnesota ;
DR[ Country ] = USA ;
// Adding an event handler to listen to the RowUpdated event
// This event will will fire after each batch is executed
EmpAdapter RowUpdated += new SqlRowUpdatedEventHandler(OnRowUpdated);
lblCounter Text = ;
EmpAdapter UpdateBatchSize = ;
// It is important to set this property for batch processing of
// updated records since batch updates are incapable of
// updating the source with changes from the database
UpdateCommand UpdatedRowSource = UpdateRowSource None;
try
DBConUpdate Open();
EmpAdapter Update(EmpDT);
catch (Exception ex)
lblCounter Text += ex Message + <Br> ;
finally
if (DBConUpdate State == ConnectionState Open)
DBConUpdate Close();
private void OnRowUpdated(object sender SqlRowUpdatedEventArgs args)
lblCounter Text += Batch is processed till row number = +
args RowCount ToString() + <br> ;
cha138/Article/program/net/201311/12203相关参考
ADO.NET批量更新操作 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
Hibernate批量更新与删除实例浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在我们的
Oracle中的Merge函数(批量更新/删除) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 ADO.Net实现Oracle大批量数据的更新优化
ADO.Net实现Oracle大批量数据的更新优化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 sql server自动生成批量执行SQL脚本的批处理
sqlserver自动生成批量执行SQL脚本的批处理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DataAdapter对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! DataAdapter
知识大全 溶酶体执行功能时伴随其膜组分的更新这句话是什么意思
溶酶体执行功能时伴随其膜组分的更新这句话是什么意思溶酶体中的酶通过小泡以胞吐的方式释放出来,需要小泡膜和溶酶体膜的融合中,导致膜成分的更新“溶酶体和高尔基体在行使功能时可能伴随膜组分的更新”这句话对吗
知识大全 iphne5下载游戏时显示“需要执行ios更新所需操作要求具有最新版本ios”怎么解决
iphne5下载游戏时显示“需要执行ios更新所需操作要求具有最新版本ios”怎么解决手机连接itunes,更新到IOS最新版就可以了出现需要执行iO更新所需操作要求具有最新版本的iOS怎么解决如果您
知识大全 苹果4S6.0系统在App store里下载东西提示需要执行ios系统更新,怎么解决
苹果4S6.0系统在Appstore里下载东西提示需要执行ios系统更新,怎么解决 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容
安全审核是用一套方法制度来定期检讨下列哪一项的执行状况及成效,并评估是否需要作出修改或更新?
安全审核是用一套方法制度来定期检讨下列哪一项的执行状况及成效,并评估是否需要作出修改或更新?。A.安全计划B.安全委员会职能C.安全部门职务【参考答案】A[拓展知识]安全巡查、意外调查及安全审核都能就