2017-01-12 21 views
0

我有两个组合框(CMBIDCAT)为产品类别的Id和(CMBCATNAME)产品类别的名称。当我从(CMBIDCAT)组合框中选择类别标识时,我想在(CMBCATNAME)组合框中显示所选类别的名称。我使用SQL数据库,并使用一个类来访问数据,存储过程以填充组合框,文本框等,以及文件夹来组织我的工作。我有两个组合框,我想要填充另一个组合框,组合框的数据取自SQL数据库

I organize my work with folders and classes like this

用于填充数据到我的组合框下面的代码:

public partial class ADD_PRODUCT_FORM : Form 
{ 
    BL.CLS_PRODUCTS prd = new BL.CLS_PRODUCTS(); 

    public ADD_PRODUCT_FORM() 
    { 
     InitializeComponent(); 
     CMBIDCAT.DataSource = prd.GET_ID_CATEGORIES(); 
     CMBIDCAT.DisplayMember = "ID_CAT"; 
     CMBIDCAT.ValueMember = "ID_CAT"; 
     CMBCATNAME.DataSource = prd.GET_ID_CATEGORIES(); 
     CMBCATNAME.DisplayMember = "CAT_NAME"; 
     CMBCATNAME.ValueMember = "CAT_NAME"; 
    } 
} 

我希望有人能够通过适当的形式解释我的问题。

回答

0

我不明白为什么你需要两个组合框?相反,你最好使用一个组合框,它显示这样的Id和名称:

public partial class ADD_PRODUCT_FORM : Form 
{ 
    BL.CLS_PRODUCTS prd = new BL.CLS_PRODUCTS(); 

    public ADD_PRODUCT_FORM() 
    { 
     InitializeComponent(); 
     CMBIDCAT.DataSource = prd.GET_ID_CATEGORIES(); 
     CMBIDCAT.DisplayMember = "CAT_NAME"; 
     CMBIDCAT.ValueMember = "ID_CAT"; 
    } 
} 

这将显示一个组合框。如果你打开它(或选择一个值),你会看到Id和相应的名称。您可以像这样访问选定的值:

private void GetComboValue() 
{ 
    var value = CMBIDCAT.SelectedItem as DataRowView; 
    if (value != null) 
    { 
     int id = value["ID_CAT"]; 
     string name = value["CAT_NAME"];   
    } 

    //OR if you just need Id 
    int id = Convert.ToInt(CMBIDCAT.SelectedValue); 
} 

期望您的DataSource是DataTable。