【问题标题】:Insert DataGridVIew Cell Value in Database Table在数据库表中插入 DataGridVIew 单元格值
【发布时间】: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


【解决方案1】:

您正在使用正确的事件,但请像下面这样使用它。 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);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    相关资源
    最近更新 更多