违反并发性: 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 ...
随机推荐
- linux的getcwd和readlink的区别
针对linux下的程序,有两个路径: 1>运行程序的路径; 2>可执行文件所在的路径 例如: 如果我在/home/yongchao下执行 $ ./temp/test 那么 运行程序的 ...
- 如何让ubuntu启动时打印字符信息----字符启动
一.概述 要想实现字符启动,需要修改grub.cfg(启动配置文件),将“静态启动”改为“字符启动”. 但是grub.cfg通常只作为只读文件,修改它时实际上修改的是其他的文件然后再通过update- ...
- C#开发攀爬集锦
工具使用 Files has invalid value "<<<<<<< .mine". Illegal characters in p ...
- 文档学习 - UILabel - 属性详解
#import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super vie ...
- Memcached(二)Memcached Java API基础之MemcachedClient
1. 构造函数 public MemcachedClient(InetSocketAddress[] ia) throws IOException; public MemcachedClient(Li ...
- tesseract 字体训练资料篇
tesseract 字体训练资料篇 1.制作.box档案文件. tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] ...
- python中的__init__ 、__new__、__call__等内置函数的剖析
1.__new__(cls, *args, **kwargs) 创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是cls即class本身2.__init__(self, *args, ...
- C# 判断系统空闲(键盘、鼠标不操作一段时间)
利用windows API函数 GetLastInputInfo()来判断系统空闲 //添加引用 using System.Runtime.InteropServices; // 创建结构体用于返回捕 ...
- Hicharts弄个样例
前端的事情,但最好自己要了解一下,能作个最简单的东东出来... 样例,需要的时候,用用,就喟给它一样模板数据即可. PYTHON,把字典的键值和KEY值匹配成列表即可. $(function () { ...
- 带控制端的逻辑运算电路_分别完成正整数的平方、立方和阶乘的运算verilog语言
练习:设计一个带控制端的逻辑运算电路,分别完成正整数的平方.立方和阶乘的运算. //--------------myfunction---------- modulemyfunction(clk,n, ...