违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条 解决办法
本文转载:http://www.cnblogs.com/litianfei/archive/2007/08/16/858866.html
UpdateCommand和DeleteCommand出现DBConcurrencyException异常。调试提示:违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条;或 违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条。
这里的违反并发性:不是指多人编辑引起的并发。
问题原因:
在插入、更新或删除操作过程中当受影响的行数等于零时由 DataAdapter 引发的异常。
可能的解决方法:
1 检查是否设有主键。
2 DeleteCommand的问题:检查是否含有自动编号字段(Access的自动编号字段可能会引发此异常);
UpdateCommand的问题:检查更新的字段的原始值是否为空值(原始空值更新时可能会引发此异常)。
3、多人并行操作也可能引发这样的异常。
----------------------
如果你采用了BindingSource和TableAdapter的话,请参考下面的代码:
-----------------------------------------------------------------------------------
例程来源:人民邮电出版社出版的书《Visual Basic .NET 2005数据库编程技术与实例》
详情请见:http://www.ptpress.com.cn/books/Book_Information.asp?BID=16271
-----------------------------------------------------------------------------------
Me.Validate()
Me.职工基本信息BindingSource.EndEdit()
Me.职工基本信息TableAdapter.Update(Me.工资管理DataSet.职工基本信息.GetChanges)
Me.工资管理DataSet.职工基本信息.AcceptChanges()
但是这样做后,导致了,dataset和数据库不一致的问题。是.AcceptChanges()
语句导致。
----------------------
也反应这样处理:http://software.it168.com/manual/ado.net/4-2-g.htm
| ? |
|
|||
| 状态 | 说明 |
|---|---|
| Continue | 继续执行更新操作。 |
| ErrorsOccurred | 中止更新操作并引发异常。 |
| SkipCurrentRow | 忽略当前行并继续执行更新操作。 |
| SkipAllRemainingRows | 中止更新操作但不引发异常。 |
我们建议目前这样处理:
if(this.工资管理DataSet.职工基本信息.GetChanges!=null)
{Me.职工基本信息TableAdapter.Update(Me.工资管理DataSet.职工基本信息.GetChanges)}
private void Form1_Load(object sender, EventArgs e)
{
string conn = "Data Source=.;Initial Catalog=TestDB;Integrated Security = SSPI;";
using (SqlConnection connection = new SqlConnection(conn))
{
connection.Open();
string select = "SELECT * FROM Table_1";
SqlDataAdapter da = new SqlDataAdapter(select, connection);
da.RowUpdating += new SqlRowUpdatingEventHandler(da_RowUpdating);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dataTable = ds.Tables[0]; dataTable.Rows[0][1] = "9999";
// 删除第8行
//dataTable.Rows[1].Delete(); SqlCommand cmd = new SqlCommand();
SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(da);
cmd=objCommandBuilder.GetDeleteCommand();
da.Update(dataTable);
//if (dataTable.GetChanges() != null)
//{
// da.Update(dataTable.GetChanges());
//} //dataTable.AcceptChanges(); this.dataGridView1.DataSource = dataTable; }
} void da_RowUpdating(object sender, SqlRowUpdatingEventArgs e)
{
e.Status = UpdateStatus.Continue;
}
违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条 解决办法的更多相关文章
- 违反并发性: UpdateCommand影响了预期 1 条记录中的 0
今天遇到这个错误,看到下面这种说法都没解决问题: 1 检查是否设有主键.2 DeleteCommand的问题:检查是否含有自动编号字段(Access的自动编号字段可能会引发此异常): UpdateC ...
- updatetable 违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条造成问题一种原因
数据库 表A ID UserName DeptID DeptName 1 张三 1 技术部 表B ID DeptName 1 市场部 当使 ...
- 错误:违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条
在access的mdb数据库动态更新的过程中,遇到了DeleteCommand出现DBConcurrencyException异常,错误:违反并发性: DeleteCommand 影响了预期 1 条记 ...
- FPC报价模块配置 UpdateCommand影响了预期 1 条记录中的 0 条 解决办法
今天在增加P4厂 FPC报价模块配置,增加刚挠信息节点,在保存时报错:UpdateCommand影响了预期 1 条记录中的 0 保存时使用:SqlDataAdapter批量更新DataTable,怎么 ...
- ecshop 秒杀并发时库存会被减到小于0的解决办法
ecshop 秒杀并发时库存会被减到小于0更新库存后,再进行库存检查,如果库存为负数,则执行事务的回滚. begin();//开始一个事物处理开始 $sql = "UPDATE " ...
- CUDA 7 Stream流简化并发性
CUDA 7 Stream流简化并发性 异构计算是指高效地使用系统中的所有处理器,包括 CPU 和 GPU .为此,应用程序必须在多个处理器上并发执行函数. CUDA 应用程序通过在 streams ...
- mysql中update的low_priority解决并发问题
在处理访客信息更新是遇到了大并发的问题,low_priority,低优先级,可以让并发没那么占CPU,对于低配VPS来说,作用还是很大的.UPDATE [LOW_PRIORITY] tbl_name ...
- Select for update/lock in share mode 对事务并发性影响
select for update/lock in share mode 对事务并发性影响 事务并发性理解 事务并发性,粗略的理解就是单位时间内能够执行的事务数量,常见的单位是 TPS( transa ...
- Mysql加锁过程详解(4)-select for update/lock in share mode 对事务并发性影响
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
随机推荐
- 3D 服务器端以向量计算为主的角色位置的算法
把我以前学习过的一个东西拿出来分享下~ 3D服务器端玩家行走处理是服务器端根据客户端行走路径.玩家行走时间以及速度(包括变化速度)计算得出玩家的当前位置. 由于客户端行走是一条路径,不使用2D中的格子 ...
- 进位位(carry)与溢出位(overflow)的区别
处理器内部以补码表示有符号数,8个二进制位能够表达的整数范围是:+127 ~ -128,16位表达的范围是:+32767 ~ -32768.如果运算结果超出了这个范围,就是产生了溢出:有溢出,说明有符 ...
- SQL(笔试题)网站上的广告位是轮播的,每天某一广告位最多可轮播的广告数量是有限制的,比如A广告位,每天只能轮播三个广告,但销售人员在销售广告位时并不考虑此限制,要求查询出合同表中,超过广告位轮播数量的合同。
合同表 Orders OrderID Positioncode Startdate Enddate 1 A 2006-11-01 2006-11-03 2 C 2006-11-02 2006-11-0 ...
- JavaNIO之Channel
Channel的本质是通道,用来连接JVM之外数据向JVM内传输数据,比如来自于硬盘的文件,来自于网络的数据包.JVM之外的数据就是通过Channel进行数据传输:如果把Channel比作河道,那么作 ...
- 传感器- 加速计 - CoreMotion
/** * CoreMotion * */ #import "ViewController.h" #import <CoreMotion/CoreMotion.h> ...
- PADS故障解决
1. 点击PADS后就会出现以下: "The directory pointed by the FileDir INI file entry cannot be found.Aborting ...
- Investigation of Different Nets and Layers
Investigation of Different Nets and Layers Overview of AlexNet (MIT Places | Flickr Finetuned | Oxfo ...
- 解决java.lang.NoClassDefFoundError: org.jdom.Content
报错:java.lang.NoClassDefFoundError: org.jdom.Content 解决办法: 更新lib目录下的jdom.jar 至最新版本.
- 在MVC或WEBAPI中记录每个Action的执行时间和记录下层方法调用时间
刚才在博客园看了篇文章,http://www.cnblogs.com/cmt/p/csharp_regex_timeout.html 突然联想到以前遇到的问题,w3wp进程吃光CPU都挂起IIS进程 ...
- js template
http://garann.github.io/template-chooser/ http://www.gbin1.com/technology/javascript/20120917-javasc ...