.Net组合框,来自一个数据库和数据库的数据值。价值保存在另一个

时间:2009-11-24 22:59:52

标签: c# .net winforms data-binding combobox

我有一个表INVOICEDETAILS,其中包含PRODUCTID。我想创建一个组合框,它从INVENTORY表中获取所有可能的PRODUCTID值,但将所选值保存到INVOICEDETAILS表中。

我可以通过DATASOURCE属性用INVENTORY值填充组合框,但我无法弄清楚如何将选定的组合框值保存到INVOICEDETAILS中。实现这一目标的最佳实践方法是什么?

我能够通过制作一个绑定到INVOICEDETAILS PRODUCTID字段的虚拟标签,然后在组合框更改时更新标签TEXT值,但1)这看起来像一个kludge,以及2)虚拟标签必须这样做设置为VISIBLE以使其工作。

谢谢!

2 个答案:

答案 0 :(得分:1)

根据您对数据源的使用情况,答案有所不同。通常,您将使用DataSet作为数据源,并通过指定ValueMember来处理此问题,然后将该值成员保存为常规DataSet保存例程的一部分。

示例:

private void PopulateComboBox()
{
    DataSet Source = RetrieveDataSet();
    myComboBox.DataSource = Source;
    myComboBox.ValueMember = "MemberColumnName";
}

private void SaveData()
{
    DataSet UpdatedData = GetUpdatedData();  //will put myComboBox.ValueMember into the appropriate column in UpdatedData
    DoDBSave(UpdatedData);  // Will call a serialization routine that knows how to deal with UpdatedData
}

答案 1 :(得分:0)

我只是单向绑定组合框,所以你可以从库存表中获取值,但我不会使用数据源控件或任何东西来进行保存。我只是调用我必须保留invoicedetails数据的任何业务对象方法,将选定的组合框值作为参数。