我可以在从 Access DB 填充的组合框的顶部添加额外的行吗
Can I add an extra row, at the top of a combo box that is being populated from an Access DB
我有一个 vb 组合框,其值取自针对 Access 数据库的 SELECT DISTINCT SQL 语句 运行。所选值将用作后续 SELECT 语句中的参数。我担心的是,我希望用户能够避免选择一个值,以便该参数将从下一个 SELECT 语句中删除,或者将使用 * 作为通配符。我不想在 table 中添加一个虚拟行来保存空值或星号,所以我需要找到一些方法来在顶部添加一行来显示它。我不确定 how/where 放置 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()
从数据库中提取数据后,您可以在 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)
我有一个 vb 组合框,其值取自针对 Access 数据库的 SELECT DISTINCT SQL 语句 运行。所选值将用作后续 SELECT 语句中的参数。我担心的是,我希望用户能够避免选择一个值,以便该参数将从下一个 SELECT 语句中删除,或者将使用 * 作为通配符。我不想在 table 中添加一个虚拟行来保存空值或星号,所以我需要找到一些方法来在顶部添加一行来显示它。我不确定 how/where 放置 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()
从数据库中提取数据后,您可以在 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)