违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。

图片说明
写了个在dataGridView控件中修改数据后,点击按钮后自动更新到数据库的代码,
PS:主键已经设置了,但是还是这个报错,第一次点击按钮能成功不会报错,再修改一条点击更新后,就会报错,但是表有时还能改过来!跪求各位大神解答

已经困扰我没办法了!贴上代码
private void btModifier_Click(object sender, EventArgs e)
{
string strSql = "select * From 部门表";
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(strSql, myconnection);
DataSet ads = new DataSet();
adapter.Fill(ads, "部门表");
DataTable dt = new DataTable();
dt = ads.Tables["部门表"];
dt.Rows.Clear();
// dt.PrimaryKey = new DataColumn[] { dt.Columns["部门号"] };//设置表的主键,这句能修改原来建表时设定的主键,每个表只有一个主键
adapter.FillSchema(dt, SchemaType.Mapped);
DataTable dtShow = new DataTable();
dtShow = (DataTable)dataGridView1.DataSource;
for (int i = 0; i < dtShow.Rows.Count; i++)
{
dt.ImportRow(dtShow.Rows[i]);
}
// try
// {
SqlCommandBuilder CommandBuiler;
CommandBuiler = new SqlCommandBuilder(adapter);
// MessageBox.Show("调试代码444");
if (dt.GetChanges() == null)
{
// adapter.Update(dt.GetChanges());

            }


            adapter.Update(dt);
            dt.AcceptChanges();
            MessageBox.Show("修改成功");


            if (dt.GetChanges() == null)
            {
               // adapter.Update(dt.GetChanges());


            }



          //  MessageBox.Show("调试代码6744");


      //  }
     //   catch (Exception ex)
      //  {
            //MessageBox.Show("调试代码3!" + ex.ToString());

       // }

    }

http://www.cnblogs.com/litianfei/archive/2007/08/16/858866.html
可以参考一下,应该有你需要的

解决了吗 大佬