gpt4 book ai didi

c# - 在数据库表中插入 DataGridVIew 单元格值

转载 作者:行者123 更新时间:2023-11-29 18:02:46 25 4
gpt4 key购买 nike

我对使用 C# 编程还很陌生。

因此,我创建了包含 ID、PersonName、City 列的数据库表 Info,并将其绑定(bind)到 WinForms 中的 DataGridView。每当我更改单元格值或添加新单元格时,我希望它分别更新/插入到数据库表中。我的问题是我应该参加哪项事件?我尝试过 CellEndEdit、CellValueChanged、CellLeave,但似乎都不起作用。

这是我的插入查询:

            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 事件,它可能无法获取正确的单元格,但不知道为什么其他事件不起作用。

任何人都想分享任何内容

最佳答案

您正在使用正确的事件,但请像下面这样使用它。 SelectedCells 可能不会返回正确的值。使用 e.RowIndex 它将返回您正在编辑的确切单元格的值。

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
string Person = dataGridView1.Rows[e.RowIndex].Cells["Person"].Value.ToString();
string City = dataGridView1.Rows[e.RowIndex].Cells["City"].Value.ToString();
AddToDatabase(Person,City);
}

关于c# - 在数据库表中插入 DataGridVIew 单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48191008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com