0

我有一个通过数据向导连接到我的 vb 应用程序的 ms access 数据库。我想让用户搜索数据库并在数据网格上显示他们的结果。例如,用户搜索身高在 1.8 米以下的 50 – 55 岁老人

到目前为止,我可以使用此代码显示数据库中的总人数

    Private Sub lblTotalPeople_Click(sender As System.Object, e As System.EventArgs) Handles lblTotalPeople.Click
    Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\AssignmentDatabase.accdb")
    ' Use wildcard'
    Dim cmd As OleDbCommand = New OleDbCommand("Select COUNT(*) From Table1", con)
    '' or Where username='" & TextBox1.Text & "'
    con.Open()
    Dim myDA As OleDbDataAdapter = New OleDbDataAdapter(cmd)
    Dim myDataSet As DataSet = New DataSet()
    myDA.Fill(myDataSet, "Table1")
    DataGridView2.DataSource = myDataSet.Tables("Table1").DefaultView

End Sub

我将如何根据用户搜索的内容或我将使用什么来搜索数据库?

4

1 回答 1

0

假设您还不需要学习如何使用 SQL。

在您上面的代码中,SQL 语句是

Select COUNT(*) From Table1

您需要将此 SQL 替换为使用来自用户的值(很可能来自文本框)的搜索。本文

'' or Where username='" & TextBox1.Text & "'

似乎是某些可能有效但看起来很危险的 SQL 的一部分。您还应该研究 SQL 注入,因为直接使用它意味着用户可以访问/损坏您的 Access 数据库。

于 2012-12-05T16:53:33.853 回答