在一个DataGridView中管理数据库中的表,新增行、修改新增的行、删除修改的行,都没有问题,但对于原有的行,在修改删除的时候会报
违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条?
和
违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条?
保存修改的代码如下private void SaveData(DataSet ds,DataGridView dgv)
{
bdsColor.EndEdit(); //对应表dbo.dcolor
bdsConfig.EndEdit(); //对应表dbo.tcardtype
if (ds.GetChanges() == null)
{
return;
}
try
{
SqlCommand cmmd = new SqlCommand();
cmmd = con.CreateCommand();
string sqlT = "";
if (ds == dsColor)
sqlT = "dbo.dcolor";
else
sqlT = "dbo.tcardtype";
cmmd.CommandText = "select * from " + sqlT;
SqlDataAdapter da = new SqlDataAdapter(cmmd);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(ds);
ds.AcceptChanges();
dgv.Update();
MessageBox.Show("OK!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示");
ds.RejectChanges();
return;
}
}
另外,对于另一个dgvConfig里面的数据,不管新旧数据,都可以随意删除、修改,不会报错!怎么这么郁闷??
看过很多帖子,说看表有没有主键,有!
看是否有空值,没有!
请大神指教!!!多谢!
违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条?
和
违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条?
保存修改的代码如下private void SaveData(DataSet ds,DataGridView dgv)
{
bdsColor.EndEdit(); //对应表dbo.dcolor
bdsConfig.EndEdit(); //对应表dbo.tcardtype
if (ds.GetChanges() == null)
{
return;
}
try
{
SqlCommand cmmd = new SqlCommand();
cmmd = con.CreateCommand();
string sqlT = "";
if (ds == dsColor)
sqlT = "dbo.dcolor";
else
sqlT = "dbo.tcardtype";
cmmd.CommandText = "select * from " + sqlT;
SqlDataAdapter da = new SqlDataAdapter(cmmd);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(ds);
ds.AcceptChanges();
dgv.Update();
MessageBox.Show("OK!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示");
ds.RejectChanges();
return;
}
}
另外,对于另一个dgvConfig里面的数据,不管新旧数据,都可以随意删除、修改,不会报错!怎么这么郁闷??
看过很多帖子,说看表有没有主键,有!
看是否有空值,没有!
请大神指教!!!多谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货