在一个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里面的数据,不管新旧数据,都可以随意删除、修改,不会报错!怎么这么郁闷??
看过很多帖子,说看表有没有主键,有!
看是否有空值,没有!
请大神指教!!!多谢!