违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。
保存入数据库代码如下,出现如题问题,有哪些可能?public bool ExecuteBatchCommandBySQL(DataTable dt, string sSelectSql)--------------------编程问答-------------------- google 关键字 sql 违反并发性 --------------------编程问答--------------------
{
OpenCon();
SqlDataAdapter sd = new SqlDataAdapter();
sd.SelectCommand = new SqlCommand(sSelectSql, con);
SqlCommandBuilder scb = new SqlCommandBuilder(sd);
try
{
lock (this)
{
sd.Update(dt); //此处出错
}
}
catch (Exception ex)
{
throw ex;
}
return true;
}
UpdateCommand的问题:检查更新的字段的原始值是否为空值(原始空值更新时可能会引发此异常)。
除了这一点没有别的可能?
我的原始值不为null也出现UpdateCommand的问题 --------------------编程问答-------------------- 数据的操作不是单单的只修改或只删除,是在DataGridView界面任意作增、删、改操作,最后点保存按钮批量保存到数据库。
是一次做了多种操作后,保存时才出现如上问题,要怎么解决? --------------------编程问答-------------------- UPUPUP --------------------编程问答--------------------
数据库中的主键为自动增长列,在网上查了很多资料还是无法解决。
那我要实现批量更新,除了以上方法,还有没有其它方法???
最重要的是数据不能出错,界面不能报错。 --------------------编程问答-------------------- 更新是否涉及多条数据
ds.RejectChanges();
ds.Clear();
--------------------编程问答--------------------
是的,在DataGridView界面任意作增、删、改操作后一次保存。
而且数据库中的主键为自动增长列。
有什么好的实现方法吗?
--------------------编程问答-------------------- 别涉及多个数据,这样不好。如果多条记录之间有关联怎么办?所以一次就只让他操作一条。 --------------------编程问答-------------------- 检查是否设有主键。
adapter实现数据更新
UpdateCommand的问题:检查更新的字段的原始值是否为空值(原始空值更新时可能会引发此异常)
int型设置为 0
--------------------编程问答--------------------
throw用错位置了。
要try还有什么用。
this是什么,lock要做什么?把this的代码贴出来。
如果是多线程程序,多建几个connection,什么也不要lock.
--------------------编程问答--------------------
错误不可能不出现,加一些容错功能。
发生 错误时,暂停一段(可能是几个毫秒)。再试一次。
有些错误是难免的,象 字段不为空,你设置了空值。
--------------------编程问答-------------------- 要更新的数据原值与数据库中的不一致导致 --------------------编程问答--------------------
是单表的数据,数据与数据之间几乎没联系。 --------------------编程问答--------------------
这两点都检查过了,是没问题的。 --------------------编程问答--------------------
当然是不一致的,一致的话就不用更新啦
我的主键是自动增长,这有问题吗? --------------------编程问答--------------------
主键增长,会引发这个错误 --------------------编程问答-------------------- 我也正在困惑这个问题
补充:.NET技术 , C#