DatagridView更改不反映在数据库中

时间:2013-01-09 07:06:05

标签: c# winforms ado.net

我有一个datagridview,设置为EditMode:EditOnKeystroke。当我在网格中编辑数据并单击更新按钮时,更改不会反映在数据库表中,该表是此网格的数据源。加载dataGridView并更新它的代码如下所示。

private void Form_Load(object sender, EventArgs e)
{                
      // TODO: This line of code loads data into the 'pFSDataSet5.Farms' table. You can move, or remove it, as needed.
      this.farmsTableAdapter.Fill(this.pFSDataSet5.Farms);    
}

private void update_Click(object sender, EventArgs e)
{
      //da.Update((DataTable)farmsTableAdapter);
      int s=this.farmsTableAdapter.Update(this.pFSDataSet5.Farms);
      Console.Write(s);

      MessageBox.Show("Successfully Updated");
}

我错过了什么,数据更改不会传播到名为'Farms'的db表?

2 个答案:

答案 0 :(得分:2)

更改不会反映在您的数据库中,因为您没有关闭编辑datagridview。使用这两行来关闭datagridview编辑:

 yourdatagridview.EndEdit();
 ((DataRowView)yourdatagridview.CurrentRow.DataBoundItem).EndEdit();

然后您可以使用tableadapter更新。 :)

答案 1 :(得分:0)

更改不会传播到数据库,因为数据网格和数据集之间没有绑定。

在表单加载时使用数据集表尝试setting the grid.DataSource