【发布时间】:2018-01-10 15:38:40
【问题描述】:
我对使用 c# 编程相当陌生。
所以我创建了包含 ID、PersonName、City 列的数据库表 Info,并将其绑定到 WinForms 中的 DataGridView。每当我更改单元格值或添加新单元格时,我希望它分别更新/插入到数据库表中。我的问题是我应该参加哪个活动?我尝试过 CellEndEdit、CellValueChanged、CellLeave,但似乎都没有工作。
这是我的 INSERT 查询:
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO Info([PersonName], [City]) Values (@personName, @city)";
cmd.Parameters.AddWithValue("@personName", dataGridView1.SelectedCells[0].Value.ToString());
cmd.Parameters.AddWithValue("@city", dataGridView1.SelectedCells[0].Value.ToString());
cmd.ExecuteNonQuery();
dataGridView1.ResetBindings();
conn.Close();
对于 UPDATE 查询
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
string updateQuery = "update Info set [PersonName]='" + dataGridView1.SelectedCells[0].Value + "', [City]='" + dataGridView1.SelectedCells[0].Value + "', where ID=" + dataGridView1.SelectedRows[0] + "";
cmd.CommandText = updateQuery;
cmd.ExecuteNonQuery();
conn.Close();
我知道对于 CellLeave 事件,它可能没有得到正确的单元格,但不知道为什么其他事件不起作用。
任何人都想分享任何t
【问题讨论】:
-
最简单的方法是使用 DataTable 作为由持久 DataAdapter 填充的 DataSource。 DGV 自动保存更改/添加和删除数据表。然后,DA 可以使用一条
Update语句将更改保存到数十或数百行,
标签: c# mysql database winforms datagridview