1

我最近回答了一个关于如何从访问数据库中填充组合框的问题,但是我的最新问题对我来说有点棘手。

我需要从表中的两列填充我的下一个组合框,即:

原因代码 - 原因

所以我希望我的组合框如下所示 -

A - 账户

S - 销售

ST - 系统整洁

但是,原因代码和原因描述存储在我的数据库中的两个单独的列中,它们不能连接在一起。这在 VB.Net 中是否可以将多列拉入一个组合框中?

我当前填充框的代码(由 LarsTech 提供)

Protected Overrides Sub OnLoad(e As EventArgs)
    Dim ds1 As New DataSet()
    Dim ConnnectionString1 As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Admin\Desktop\CancellationsAndMovements\CancellationsandMovements\cancmov.mdb"

    Dim db1 As String = "SELECT reasoncode FROM Reason"

    Using cn1 As New OleDbConnection(ConnnectionString1)
        Using da As New OleDbDataAdapter(db1, cn1)
            da.Fill(ds1, "reasoncode")
        End Using
    End Using

    With drpMoveReason
        .DisplayMember = "reasoncode"
        .DataSource = ds1.Tables("reasoncode")
        .SelectedIndex = 0
    End With

    MyBase.OnLoad(e)

End Sub

我要拉的额外列称为“reasondesc”

如果可以以这种方式填写任何帮助,将不胜感激,也将不胜感激在我写回不同数据库时如何仅写回原因代码的帮助。

先感谢您。

4

2 回答 2

1

您可以按照 David Osborne 的建议从数据库中获取信息时执行此操作,或者您可以创建一个临时数据表,其中包含一个 ID 列(您的原因代码)和连接的字符串作为显示列(将其命名为描述或其他)。设置好临时表列后,您只需要循环浏览从数据库中获取的所有记录,然后手动将行添加到表中。

无论哪种情况,您都希望将.ValueMember组合框上的 设置为表中的原因代码列,并将 设置.DisplayMember为串联的原因代码和描述。然后,当您想保存回数据库时,只需.SelectedValue从组合框中获取它,它将是当前选择的原因代码。

于 2012-08-08T23:58:44.610 回答
0

这里有几个选项。为什么不尝试在查询中连接两者:select reasoncode & "-" & reasondesc from...

您可以通过以下方式进一步开发它:选择原因代码,原因代码+“-”+reasondesc作为描述来自...

然后使用reasoncode作为valuemember,启用回写到table,description作为displaymember。

于 2012-08-08T20:59:02.507 回答