C# 我对linkdatagridview和custome数据库列有问题
我有sql db表包含ID和项。 另外,我有winform,我使用DataGrid类型“DataGridViewComboxColumn”从db表中选择项目,它工作得非常好 现在的问题是,当我从“DataGridViewComboBoxColumn”中选择项目时,我需要向DGV中的第二列显示以下“ID列”。 所以,当用户从gdv ComboBoxColumn中选择项时,我需要帮助将数据库中的特定列(ID)与datagrid列类型“DataGridViewTextBoxColumn”上的特定列链接起来 注:代码工作的第一个scop,并从db向我提供项目。 第二个代码范围不工作,我无法处理它从db表中检索ID 答案就在这里 foreach(dataGridView1.Rows中的DataGridViewRow行) {C# 我对linkdatagridview和custome数据库列有问题,c#,.net,database,winforms,datagridview,C#,.net,Database,Winforms,Datagridview,我有sql db表包含ID和项。 另外,我有winform,我使用DataGrid类型“DataGridViewComboxColumn”从db表中选择项目,它工作得非常好 现在的问题是,当我从“DataGridViewComboBoxColumn”中选择项目时,我需要向DGV中的第二列显示以下“ID列”。 所以,当用户从gdv ComboBoxColumn中选择项时,我需要帮助将数据库中的特定列(ID)与datagrid列类型“DataGridViewTextBoxColumn”上的特定列链接
警告:您的代码很容易受到注入攻击。您需要确保正确地参数化SQL语句;不要盲目地注入值。好的@Larnu。现在的主要任务是解决我的问题,在这之后,我将首先关闭错误修复安全缺陷,然后担心让代码给出您想要的结果。@Larnu there尚未发布,除非任务完成,否则即使整个项目也不会发布!代码已将Items表中的所有行存储在
ComboColumn.DataSource
中,因此无需在dataGridView1\u CellContentClick
中再次查询数据库。而且,不必要的查询也没有意义;Name='“+ComboColumn+”“
不会产生您认为它会产生的效果。一旦您知道如何获取下拉列表中选择的值,请使用该值查询存储在ComboColumn.DataSource
中的数据表。使用CellContentClick
启动ID检索也很奇怪。
private void Purchases_Load(object sender, EventArgs e)
{
com.Connection = con;
con.Open();
com.CommandText = "select * from Items";
com.ExecuteNonQuery();
DataTable dt7 = new DataTable();
SqlDataAdapter da7 = new SqlDataAdapter(com);
da7.Fill(dt7);
ComboColumn.DataSource = dt7;
ComboColumn.DisplayMember = "Name";
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
com.Connection = con;
com.CommandText = "select ID from Items where Name = '" + ComboColumn + "' ";
con.Open();
com.ExecuteNonQuery();
SqlDataReader dr;
dr = com.ExecuteReader();
while (dr.Read())
{
string id = (string)dr["ID"].ToString();
}
con.Close();
}
DataGridViewComboBoxCell comboBoxCell = (row.Cells[2] as DataGridViewComboBoxCell);
comboBoxCell.Items.Add("Select Goods");
comboBoxCell.Value = "Select Goods";
DataTable dt_1 = this.GetData("SELECT ID,Name from Goods");
foreach (DataRow drow in dt_1.Rows)
{
string customerId = drow[0].ToString();
comboBoxCell.Items.Add(drow[0] + "-" + drow[1]);
if (customerId != "3")
{
if (row.Cells[2].Value.ToString() == customerId)
{
comboBoxCell.Value = drow[1];
}
}
}