我有两个组合框(CMBIDCAT)用于产品类别的ID,(CMBCATNAME)用于产品类别的名称。当我从(CMBIDCAT)组合框中选择类别ID时,我想在(CMBCATNAME)组合框中显示所选类别的名称。我使用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 :(得分:0)
我没有看到为什么你需要两个组合框的原因?相反,你最好使用一个comboBox,它显示Id和Name,如下所示:
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";
}
}
这将显示一个comboBox。如果您打开它(或选择一个值),您会看到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。