gpt4 book ai didi

database - 如何使用代码在VB中搜索一个access数据库的多个字段

转载 作者:搜寻专家 更新时间:2023-10-30 20:37:39 24 4
gpt4 key购买 nike

我创建了一个程序来显示 Access 数据库中不同表的数据(无需使用向导连接到数据库。即所有连接都已硬编码),我创建了一个简单的搜索,它通过一个字段进行搜索在一张 table 上。但是,我想制作一个允许我搜索表格中所有字段的功能。下面是我创建的简单搜索功能。

     Public Sub Search()         
con.Open()
Dim dt As New DataTable("Table1")
Dim rs As New OleDb.OleDbDataAdapter("Select * from Table1 where FirstName = '" & txtTabel1.Text & "'", con)

rs.Fill(dt)
dgvTabel2.DataSource = dt
dgvTabel2.Refresh()

rs.Dispose()
con.Close()
end sub

新函数看起来应该是这样的

   Public Sub SearchHard(TableName As String)
con.Open()
Dim dt As New DataTable("TableName")
Dim rs As New OleDb.OleDbDataAdapter(("Select * from " & TableName & " where FirstName = '" & txtTabel1.Text & "'") Or ("Select * from " & TableName & " where LastName = '" & txtTabel1.Text & "')"), con)
'SELECT * FROM MyTable WHERE FirstName LIKE '% txtTable1.text %' OR LastName LIKE '%txtTable1.tetx%'

rs.Fill(dt)
dgvTabel1.DataSource = dt
dgvTabel1.Refresh()

rs.Dispose()
con.Close()
End Sub

如果该函数可以接受一个参数来选择不同的表以减少过度使用代码,那将是一个很大的优势。任何和所有帮助将不胜感激

用于搜索的工作代码。

    con.Open()
Dim dt As New DataTable("Table1")
Dim rs As New OleDb.OleDbDataAdapter("SELECT * FROM Table1 WHERE (FirstName = '" & txtTabel1.Text & "') or (LastName = '" & txtTabel1.Text & "')", con)
rs.Fill(dt)
dgvTabel1.DataSource = dt
dgvTabel1.Refresh()

rs.Dispose()
con.Close()

最佳答案

你那里有一些错误的引号:

"Select * from Table where Field1 = '" & txtTabel1.Text & "'" or Field2 = '" & txtTabel1.Text"'"

应该是

"Select * from Table where Field1 = '" & txtTabel1.Text & "' or Field2 = '" & txtTabel1.Text & "'"

现在你当然可以像这样使用你的参数 TableName

"Select * from " & TableName & " where Field1 = '" & txtTabel1.Text & "'"

但是不同的表会有不同的字段名,所以那是行不通的。最后,您必须添加大量参数并重新发明 SQL。

更好的解决方案是将完整的 SQL SELECT 字符串传递给您的函数。

关于database - 如何使用代码在VB中搜索一个access数据库的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33304042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com