[英]Updating selected value in combobox by clicking datagridview row
我有一個datagridview(dgv),其中包含2個組合框的顯示成員,dgv用於顯示這些組合框之間的1-n n-1關系。
我編寫了一個代碼,用於在gridview中按下一行時更改組合框中的選定值。 它不是一直都在工作,我的意思是當我按時它會為每列更新。 但不要每次都更改它們。
例如:單擊第1、2、3、4行,沒有任何反應; 開始單擊行,代碼開始工作; 那么它就不能再工作了,依此類推。
這是更改組合框所選值的代碼:
private void dgvTypesRelation_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
string empType = Header.returnItemInGrid(dgvTypesRelation.SelectedRows, 0);
string reqType = Header.returnItemInGrid(dgvTypesRelation.SelectedRows, 1);
string query1 = "SELECT Request_TypeID FROM Request_Type WHERE Request_Type=@r";
string query2 = "SELECT Employee_TypeID FROM Employee_Type WHERE Employee_Type=@e";
int req, emp;
DataTable result = new DataTable();
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(query1, conn))
{
cmd.Parameters.AddWithValue("@r", reqType);
using (SqlDataReader dr = cmd.ExecuteReader())
{
result.Load(dr);
}
req = Convert.ToInt32(result.Rows[0]["Request_TypeID"]);
cmd.CommandText = query2;
cmd.Parameters.AddWithValue("@e", empType);
result = new DataTable();
using (SqlDataReader dr = cmd.ExecuteReader())
{
result.Load(dr);
}
emp = Convert.ToInt32(result.Rows[0]["Employee_TypeID"]);
}
}
cmbxRequestConnect.SelectedValue = req;
cmbxEmployeeConnect.SelectedValue = emp;
chkbxRemove.Checked = true;
}
我很確定我也犯了這個錯誤。 嘗試在dgvTypesRelation_CellClick
下而不是dgvTypesRelation_CellContentClick
下使用此代碼。
由Visual Studio描述,“ CellContentClick
:在單擊單元格中的內容時發生”,而“ CellClick
:在單擊單元格的任何部分時發生”
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.