最近做程序遇到一个问题,即用Update更新数据库时,只能更新、删除奇数行的数据,而操作偶数行的数据
程序则显示“并发冲突: UpdateCommand 影响 0 个记录”的错误。以程序代码说明如下。
删除代码如下:
string strsql= @"SELECT * FROM [User] WHERE UserID='"+code+"'";
this.sqlDataAdapter1.SelectCommand.CommandText=strsql;
ZZHuiYuan3DS ds=new ZZHuiYuan3DS();
this.sqlDataAdapter1.Fill(ds);
if(ds.User.Rows.Count==1)
{
ds.User[0].Delete();
this.sqlDataAdapter1.Update(ds);
return 1;
}
else
{
return 0;
}
更新代码如下:
string sql= @"SELECT * FROM [User] WHERE UserID='"+code+"'";
string shenhe="已审核";
this.sqlDataAdapter1.SelectCommand.CommandText=sql;
ZZHuiYuan3DS ds=new ZZHuiYuan3DS();
this.sqlDataAdapter1.Fill(ds);
if(ds.User.Rows.Count==1)
{
ds.User[0].ShenHe=shenhe;
this.sqlDataAdapter1.Update(ds);
return 1;
}
else
{
return 0;
}
当程序执行到this.sqlDataAdapter1.Update(ds);时,若更新或删除奇数行时,程序正常进行更新或删除操
作,若更新或删除偶数行时,程序则显示“并发冲突: UpdateCommand 影响 0 个记录”的错误。
考虑到奇数行能够正常执行,说明程序代码没有问题,接下来查找配置的DS数据集,结果发现表User配置两
个DS数据集(原来配置了一个DS数据集,后来数据库发生变化重新配置了另一个DS数据集,简单的将原先的
数据集进行更新,而此时更新、删除操作指向的是原先的DS数据集--呵呵,这个就是问题所在了)。
解决方法:将更新、删除操作指向最新配置的DS数据集,测试数据,一切正常。