我的表单由一个DataGridView组成,在其中,我有一个列作为ComboBox。
ComboBox被数据库查询填充。
我想在DataGridView中显示ComboBox的默认值。我已经在组合框中加载了值,但是找不到一种方法来为其设置默认值。
点击btnLoadCombo
按钮,我将带有以下代码的值添加到组合框中:
private void btnLoadCombo_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["InventoryManagerConnectionString"].ConnectionString);
//Filling ComboBoxes
con.Open();
SqlCommand cmdGetRootCat = new SqlCommand("SELECT * FROM tblProductCategories", con);
SqlDataReader sdaRootCat = cmdGetRootCat.ExecuteReader();
comboBoxCatTest.Items.Clear();
while (sdaRootCat.Read())
{
this.CatCombo.Items.Add(sdaRootCat["Cat_Name"]);
}
//Filling DataGridView
DataTable dt = new DataTable();
dt.Clear();
SqlCommand cmd = new SqlCommand("SELECT Cat_ID, Cat_Name FROM tblProductCategories", con);
SqlDataReader sda = cmd.ExecuteReader();
dt.Load(sda);
dataGridCatList.DataSource = dt;
con.Close();
}
我希望得到如图2所示的结果。
答案 0 :(得分:0)
您可以使用
foreach(DataGridViewRow row in dataGridCatList.Rows)
{
if(row.Cells[3].Value != null) //ignore last row which is empty
{
if( row.Cells[3].Value.Equals(1018) )
row.Cells[0].Value = this.CatCombo.Items[0];
}
//...and so on
}
您正在使用foreach()
循环遍历每一行,并将Cat_ParentCat
的值与row.Cells[3].Value.Equals(Cat_ParentCatValue)
进行比较。如果找到匹配项,请使用row.Cells[0].Value = this.CatCombo.Items[yourDefaultValue];