在access的mdb数据库动态更新的过程中,遇到了DeleteCommand出现DBConcurrencyException异常,错误:违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条。

程序逻辑:遍历表1的所有行,如果符合条件,则删除表1当前行,且删除表2中的相关行(两行),并在表2中插入新的一行。由于在判断的时候需要用到表2中新插入的行,所以得在循环中实时更新。

经查找:

该错误的原因为:数据库的主键设置为-自动编号。

错误分析:

首先获取的DeleteCommand和InsertCommand为自动获取,

          OdbcCommandBuilder pCommbui_GD = new OdbcCommandBuilder(adapter_GD);
adapter_GD.DeleteCommand = pCommbui_GD.GetDeleteCommand(); OdbcCommandBuilder pCommbui_GX = new OdbcCommandBuilder(adapter_GX);
adapter_GX.DeleteCommand = pCommbui_GX.GetDeleteCommand();
adapter_GX.InsertCommand = pCommbui_GX.GetInsertCommand();

实际为:

DELETE FROM 管线表 WHERE ((ID = ?) AND ((? = 1 AND 起点号 IS NULL) OR (起点号 = ?)) AND ((? = 1 AND S_X IS NULL) OR (S_X = ?)) AND

 ((? = 1 AND S_Y IS NULL) OR (S_Y = ?)) AND ((? = 1 AND S_H IS NULL) OR (S_H = ?)) AND ((? = 1 AND 终点号 IS NULL) OR (终点号 = ?)) 

AND ((? = 1 AND E_X IS NULL) OR (E_X = ?)) AND ((? = 1 AND E_Y IS NULL) OR (E_Y = ?)) AND ((? = 1 AND E_H IS NULL) OR (E_H = ?)))

即通过对比以上的字段(包括主键ID)来删除行,但是由于ID为自动编号,当执行完删除、插入操作后,DataTable和数据库中相同ID号对应的其他字段值发生改变,这时候再根据原来读取的DataTable的一行为条件来删除数据库中的行时,会发现数据库ID值符合条件的其他字段的值不符合条件,所以出现错误。

修改办法:

只需要修改主键字段类型-将自动编号类型改为数字类型,再在插入的时候ID自动赋最大值即可。

思路:

新建字段ID_Copy,类型数字;将ID复制到ID_Copy;删除ID;将ID_Copy设为主键。每次在执行插入的操作时,将最大的编号赋值给ID_Copy。

参考sql语句:

SQL ALTER TABLE 语句

错误:违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条的更多相关文章

  1. 违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条 解决办法

    本文转载:http://www.cnblogs.com/litianfei/archive/2007/08/16/858866.html UpdateCommand和DeleteCommand出现DB ...

  2. FPC报价模块配置 UpdateCommand影响了预期 1 条记录中的 0 条 解决办法

    今天在增加P4厂 FPC报价模块配置,增加刚挠信息节点,在保存时报错:UpdateCommand影响了预期 1 条记录中的 0 保存时使用:SqlDataAdapter批量更新DataTable,怎么 ...

  3. 违反并发性: UpdateCommand影响了预期 1 条记录中的 0

    今天遇到这个错误,看到下面这种说法都没解决问题: 1 检查是否设有主键.2 DeleteCommand的问题:检查是否含有自动编号字段(Access的自动编号字段可能会引发此异常):  UpdateC ...

  4. updatetable 违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条造成问题一种原因

    数据库 表A ID  UserName DeptID DeptName 1      张三          1          技术部 表B ID   DeptName 1      市场部 当使 ...

  5. CUDA 7 Stream流简化并发性

    CUDA 7 Stream流简化并发性 异构计算是指高效地使用系统中的所有处理器,包括 CPU 和 GPU .为此,应用程序必须在多个处理器上并发执行函数. CUDA 应用程序通过在 streams  ...

  6. Select for update/lock in share mode 对事务并发性影响

    select for update/lock in share mode 对事务并发性影响 事务并发性理解 事务并发性,粗略的理解就是单位时间内能够执行的事务数量,常见的单位是 TPS( transa ...

  7. Mysql加锁过程详解(4)-select for update/lock in share mode 对事务并发性影响

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  8. (转载)Select for update/lock in share mode 对事务并发性影响

    select for update/lock in share mode 对事务并发性影响 事务并发性理解 事务并发性,粗略的理解就是单位时间内能够执行的事务数量,常见的单位是 TPS( transa ...

  9. 深入了解 Scala 并发性

    2003 年,Herb Sutter 在他的文章 “The Free Lunch Is Over” 中揭露了行业中最不可告人的一个小秘密,他明确论证了处理器在速度上的发展已经走到了尽头,并且将由全新的 ...

随机推荐

  1. SIMLock锁卡功能解析

    一.锁卡背景介绍 锁卡即SIMLock,当手机开机启动或者插入SIM卡时,手机modem侧预置在NV项中的配置信息会与SIM卡中的信息做比对,检测是否匹配.若匹配,则SIM卡可以正常使用.若不匹配,则 ...

  2. Atitit Atitit.软件兼容性原理----------API兼容 Qa7

    Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...

  3. cmd命令汇总

    一  cmd 命令 cmd命令大全(第一部分) winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr------ ...

  4. View and Data API Tips: Constrain Viewer Within a div Container

    By Daniel Du When working with View and Data API, you probably want to contain viewer into a <div ...

  5. java 中抽象类和接口的五点区别?

    1.一个类可以实现多个接口 ,但却只能继承最多一个抽象类. 2.抽象类可以包含具体的方法 , 接口的所有方法都是抽象的. 3.抽象类可以声明和使用字段 ,接口则不能,但接口可以创建静态的final常量 ...

  6. SQLSERVER基础语句(一)

    1.插入一行数据:INSERT INTO 表名(列名)VALUES(对应的值);2.一次性插入多条数据先建表:INSERT INTO 新建表名(列表)SELECT 原始表列名 FROM 原始表:执行时 ...

  7. nrm NPM源管理工具

    nrm NPM源管理工具 工具 前端 npm cnpm 今天经过同事介绍,发现一个好玩的东西——nrm(NPM registry manager) nrm 是一个可以快速切换NPM源的node插件.由 ...

  8. AngularJS 过滤器

    过滤器可以使用一个管道字符(|)添加到表达式和指令中 AngularJS 过滤器可用于转换数据: currency 格式化数字为货币格式. filter 从数组项中选择一个子集. lowercase ...

  9. Java 条形码 二维码 的生成与解析

    Barcode简介 Barcode是由一组按一定编码规则排列的条,空符号,用以表示一定的字符,数字及符号组成的,一种机器可读的数据表示方式. Barcode的形式多种多样,按照它们的外观分类: Lin ...

  10. 基于easyUI实现组织结构树图形

    一. 准备工作 1. 点击此下载相关文件 2. 进入 js 文件夹,解压缩 jquery-easyui-1.5.rar 到当前文件夹 二. 在浏览器中运行 organize.html 文件,即可看到效 ...