【问题标题】:.Net combobox with data values from one database & value saved in another.Net 组合框,其中包含来自一个数据库的数据值和保存在另一个数据库中的值
【发布时间】:2009-11-24 22:59:51
【问题描述】:

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

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

我已经能够通过将虚拟标签绑定到 INVOICEDETAILS PRODUCTID 字段然后在组合框更改时更新标签 TEXT 值来做到这一点,但是 1)这看起来像一个杂物,并且 2)虚拟标签必须设置为 VISIBLE 以使其正常工作。

谢谢!

【问题讨论】:

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


    【解决方案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
    }
    

    【讨论】:

    • 感谢您的快速回复。我通过 BindingSource 使用 DataSet。听起来好像没有自动(例如,Visual Studio 中的连接/配置)来更新 INVOICEDETAILS 表。听起来您的解决方案和安迪要求我编写代码来修改 INVOICEDETAILS 表中的字段,然后保存更改。感谢您的帮助,我不确定 w/r/t .Net、数据绑定和组合框有什么可能或标准。
    • 我想有一种方法可以创建一个数据绑定对象来执行此操作,但在这种情况下几乎肯定也需要代码。
    【解决方案2】:

    我只会以一种方式绑定组合框,这样您就可以从库存表中获取值,但我不会使用数据源控件或任何东西来进行保存。我只需调用我必须保存 invoicedetails 数据的任何业务对象方法,将选定的组合框值作为参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多