[英]How to set a selected cell value ifrom a datagridview and use it to insert in a database?
[英]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.