好的,希望我能正确解释一下。我有大约3个月的使用Access数据库的专业经验,没有使用Vb.net,但我正在开展一个项目来获得我的学位。这个项目的目标是为我父母的公司创建一个Windows窗体,All Keyed Up Lock&安全。
此表单将链接到Access数据库,其中包含4个表,这些表是该公司某些客户的列表。然后,该表单将允许您在该数据库中搜索特定客户,然后返回该特定客户的所有信息。
这对于结算很有用,也可以让我们在离开之前查看我们对客户的任何特殊说明。这四个表是[McDonald's-Corporate Stores], [McDonald's-Independently Owned], [Sonic-Corporate Stores], [Sonic-Independently Owned]
。
基本上我遇到的问题是搜索功能。我不能为我的生活找到一种方法让这个工作。我尝试过4种或5种不同的解决方案,但仍然没有。我正在使用Visual Studio 2013.这是我目前的代码,搜索按钮:
Private Sub SearchButton_Click(sender As Object, e As EventArgs) Handles SearchButton.Click
Dim Connection As New SqlClient.SqlConnectionStringBuilder
Connection.DataSource = "file:///C:\Users\thelukester145\Documents\All%20Keyed%20Up\All%20Keyed%20Up,%20Lock%20&%20Safe,%20LLC.accdb"
Dim objSQLConnection = New SqlClient.SqlConnection(Connection.ConnectionString)
Dim cmd As New SqlCommand()
Dim myTable As New DataTable()
Dim SearchFor = SearchBox.Text
If AddressButton.Checked Then
cmd.Connection = objSQLConnection
cmd.CommandText = "SELECT * FROM [McDonald's-Corporate Stores] WHERE [Address] LIKE '%" & SearchFor & "%'"
Dim myAdapter As New SqlDataAdapter(cmd)
myAdapter.Fill(myTable)
DataGrid.DataGridView1.DataSource = myTable
ElseIf NumberButton.Checked Then
cmd.Connection = objSQLConnection
cmd.CommandText = "SELECT * FROM [McDonald's-Corporate Stores] WHERE [McOpCo#] LIKE '%" & SearchFor & "%'"
Dim myAdapter As New SqlDataAdapter(cmd)
myAdapter.Fill(myTable)
DataGrid.DataGridView1.DataSource = myTable
End If
DataGrid.Show()
End Sub
正如你所看到的那样,我一直试图让它只用于一张桌子,甚至不能这样做。我宁愿不使用datagrid方法来显示信息,而是将其显示在位于表单上的文本框中。
无论如何,任何帮助都会受到很多赞赏,并且抱歉这么长的问题。
答案 0 :(得分:1)
你在哪里打开连接。您可以尝试以下代码来建立连接:
Dim cnnOLEDB As New OleDbConnection
Dim cmdOLEDB As New OleDbCommand
Dim strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & System.Environment.CurrentDirectory & "\URDataBaseName.mdb"
cnnOLEDB.ConnectionString = strConnectionString
cnnOLEDB.Open()
' your code goes here
cnnOLEDB.Close()