我有一个从数据库填充的DataGridView。 我有一个按钮来保存从DGV到数据库的更改,这工作正常。 但是现在我希望数据库能够在DGV中更改某些内容时自动更新。从DataGridView事件更新数据库无法正常工作
我尝试了几个事件CellEndEdit,CellLeave,CellValidated,CellValueChanged和SelectionChanged。 如果我编辑了单元格内容并按回车或点击/选择了一个单元格上方或下方的单元格,这些更改已保存到数据库中,但如果我在同一行中单击或单击/选择了单元格旁边的某个单元格,更改未保存。上述事件都没有帮助我解决这个问题。
//编辑
一些示例代码:
我填补我DGV这样
query_em = "select * from Table;";
try
{
dt_em = new DataTable();
da_em = new OleDbDataAdapter(query_em, connString);
cb_em = new OleDbCommandBuilder(da_em);
bs_em = new BindingSource();
da_em.Fill(dt_em);
bs_em.DataSource = dt_em;
dgv_em.DataSource = bs_em;
dgv_em.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
throw;
}
通常我用一个按钮
private void bt_save_em_Click(object sender, EventArgs e)
{
try
{
da_em.Update(dt_em);
MessageBox.Show("Database updated.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
throw;
}
}
更新他们,但我想有这样的工作正常,但它没有。上面描述了确切的问题。
private void dgv_em_SelectionChanged(object sender, EventArgs e)
{
da_em.Update(dt_em);
}
请我们看一些示例代码,以便我们可以帮助 – Star
添加一些代码,我没有看到这是如何帮助,但继续;) 我需要另一个事件则上述。代码是好的,到目前为止,我认为 – daydr3amer