我可以在从 Access DB 填充的组合框顶部添加一个额外的行吗

Posted

技术标签:

【中文标题】我可以在从 Access DB 填充的组合框顶部添加一个额外的行吗【英文标题】:Can I add an extra row, at the top of a combo box that is being populated from an Access DB 【发布时间】:2021-11-14 22:10:41 【问题描述】:

我有一个 vb 组合框,其值取自针对 Access DB 运行的 SELECT DISTINCT SQL 语句。所选值将用作后续 SELECT 语句中的参数。我担心的是我希望用户能够避免选择一个值,以便从下一个 SELECT 语句中删除该参数,或者使用 * 作为通配符。我不想在表格中添加一个虚拟行来保存空值或星号,所以我需要找到某种方法在顶部添加一行,以显示这一点。我不确定如何/在哪里放置 INSERT 语句,以便它显示在组合框的顶部,但不在数据库中。这是我正在使用的代码。我对 VB 很陌生,并选择了这种方法来填充组合框,因为它看起来很容易理解。我会很感激任何帮助。谢谢。

    myConnToAccess = New OleDbConnection(myVariables.myStrConnectionString)
    myConnToAccess.Open()
    ds = New DataSet
    tables = ds.Tables
    da = New OleDbDataAdapter("SELECT DISTINCT ProcUserName FROM Processes ORDER BY ProcUserName", myConnToAccess)
    da.Fill(ds, "Processes")
    Dim view1 As New DataView(tables(0))
    With cboUserID
        .DataSource = ds.Tables("Processes")
        .DisplayMember = "ProcUserName"
        .ValueMember = "ProcUserName"
        .SelectedIndex = 0
        .AutoCompleteMode = AutoCompleteMode.SuggestAppend
        .AutoCompleteSource = AutoCompleteSource.ListItems
    End With
    myConnToAccess.Close()

【问题讨论】:

【参考方案1】:

从数据库中提取数据后,您可以在 DataTable 中添加虚拟行,并将其位置设置为 DataTable.Rows.InsertAt

....
da.Fill(ds, "Processes")
Dim dt As DataTable = ds.Tables("Processes")
Dim row As DataRow = dt.NewRow()
row("ProcUserName") = "(All)"
dt.Rows.InsertAt(row, 0)

【讨论】:

这非常有效。谢谢你。我不确定如何在顶部插入行。

以上是关于我可以在从 Access DB 填充的组合框顶部添加一个额外的行吗的主要内容,如果未能解决你的问题,请参考以下文章

Visual Basic - 使用组合框将 Access 表中的数据填充到文本框

MS Access - 自动填充在组合框中不起作用

MS access 2007 使用组合框填充图片

从 MS Access 数据库行填充 VB 组合框

Python 使用组合框写入 Access db

针对 MS Access DB 设置此 asp.net 页面的最快方法。 .