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
    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 に答える
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 に答える