【发布时间】:2012-09-14 19:24:36
【问题描述】:
我有一个从数据库填充的 DataGridView。 我有一个按钮可以将 DGV 中的更改保存到数据库中,这很好用。 但现在我希望数据库在 DGV 中的某些内容发生更改时自动更新。
我尝试了几个事件,例如 CellEndEdit、CellLeave、CellValidated、CellValueChanged 和 SelectionChanged。 如果我编辑单元格内容并按 Enter 或单击/选择其上方或下方的单元格工作正常,则更改将保存到数据库中,但如果我在同一行中按选项卡或单击/选择旁边的单元格,则更改未保存。上述事件都没有帮助我解决这个问题。
//编辑
一些示例代码:
我这样填写我的 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);
}
【问题讨论】:
-
请给我们一些示例代码,以便我们提供帮助
-
添加了一些代码,我看不出这有什么帮助,但请继续;)我需要另一个事件然后上面描述的。到目前为止,我认为代码还可以
标签: c# sql database datagridview sql-update