簡體   English   中英

在數據庫表中插入DataGridVIew單元格值

[英]Insert DataGridVIew Cell Value in Database Table

我對使用C#編程還很陌生。

因此,我創建了具有列ID,PersonName,City的數據庫表Info,並將其綁定到WinForms中的DataGridView。 每當我更改單元格值或添加新單元格時,我希望它分別將其更新/插入db表中。 我的問題是你應該參加哪一場比賽? 我已經嘗試了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事件,它可能無法獲取正確的單元格,但不知道為什么其他事件不起作用。

任何人都想分享任何

您正在使用正確的事件,但如下所示使用它。 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);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM