建两个DataSet ,在dataGridView1_CellValueChanged事件中判断两个DataSet 是否相等,若不相等就说明数据发生变化,然后根据DataSet 写sql更新数据库就可了。

解决方案 »

  1.   

    例如这样
    private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
        SqlConnection sqlcon = new SqlConnection(strCon);
        string sqlstr = "update 表 set 字段1='"
            + dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString() + "',字段2='"
            + dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString() + "',字段3='"
            + dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString() + "' where id='"
            + dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() + "'";
        SqlCommand sqlcom = new SqlCommand(sqlstr, sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        bind();
    }
      

  2.   

    基本上不晓得你在做什么,你把列名都该了,也就是相对应的数据库字段都改了,
    你说你怎么能把相应的字段下的数据更新到你的数据库里,你难道还想SqlDataAdapter.Update()一把不成!
    如果行的话,你去找微软好了
      

  3.   

    如果你非要用的话,那个事件里直接用SqlDataAdapter.Update(datatable)好了,一句就搞定了。
    da.Update([(DataTable)]Tables["myTable"]);