1
  string sSql = "Select id from Master.Materialname where Material = '" +                
                    comboBox3.SelectedValue + "'"; 
  SqlCommand cmd = new SqlCommand(sSql,objConn1); 
  int mid = Convert.ToInt32(cmd.ExecuteScalar()); 
  string reffSql = "Select Process from Master.ProductionProcess where id = '" + mid + "'"; 
  SqlCommand rcmd = new SqlCommand(reffSql, objConn1); 
  comboBox4.SelectedValue = Convert.ToString(rcmd.ExecuteScalar());

我用过以上一个但不工作

4

2 回答 2

0

我假设您将使用 DisplayMember 和 ValueMember 填充组合框,同时最初加载组合框数据。

初始加载:

您应该从表中检索 Id 和 Name 字段并将其绑定到您的组合框。

//Loading comboBox3
SqlDataAdapter da = new SqlDataAdapter("select Id, Material from Master.Materialname", objConn1); 
DataTable dt = new DataTable(); 
da.Fill(dt); 
DataRow dr; 
dr = dt.NewRow(); 
comboBox3.DisplayMember = "Material"; 
comboBox3.ValueMember = "Id"; 
comboBox3.DataSource = dt; 

//Loading comboBox4
SqlDataAdapter da1 = new SqlDataAdapter("select Id, Process from Master.ProductionProcess", objConn1); 
DataTable dt1 = new DataTable(); 
da1.Fill(dt1); 
DataRow dr1; 
dr1 = dt1.NewRow(); 
comboBox4.DisplayMember = "Process"; 
comboBox4.ValueMember = "Id"; 
comboBox4.DataSource = dt1; 
objConn1.Close(); 

然后在 combo3selectedIndex 更改事件中,

if (Convert.ToInt32(comboBox3.SelectedValue) > 0)
    comboBox4.SelectedIndex = comboBox3.SelectedIndex;

comboBox4 的 selectedValue 现在应该更改。

于 2012-11-05T11:55:41.917 回答
0
    SqlDataAdapter da = new SqlDataAdapter("select Id, Material from Master.Materialname", objConn1); 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    DataRow dr; 
    dr = dt.NewRow(); 
    comboBox3.DisplayMember = "Material"; 
    comboBox3.ValueMember = "Id"; 
    comboBox3.DataSource = dt; 

write below code on combobox3 changed event

    int newid = comboBox3.selectedvalue;

    //Loading comboBox4
    SqlDataAdapter da1 = new SqlDataAdapter("select Id, Process from Master.ProductionProcess and Id = " + newid , objConn1); 
    DataTable dt1 = new DataTable(); 
    da1.Fill(dt1); `enter code here`
    DataRow dr1; 
    dr1 = dt1.NewRow(); 
    comboBox4.DisplayMember = "Process"; 
    comboBox4.ValueMember = "Id"; 
    comboBox4.DataSource = dt1; 
    objConn1.Close(); 
于 2012-11-05T13:14:02.793 回答