0

我知道这个网站上的大多数人都在公园里散步,但是对于像我这样的 n00b 来说,现在给我带来了一些麻烦,我要做的就是对我的“查询”按钮进行编程以显示/搜索数据根据在相应文本框中输入的字符串从我的访问文件中获取。例如,如果您尝试在访问数据库中搜索所有名为 Eric 的员工。我希望能够在我的 FirstName txtbox 中键入 Eric,并在我的访问文件中显示一个名为 Eric 的所有员工的列表。到目前为止,我有一些代码可以正常运行,但是当我单击按钮时,文本框中的任何内容都会消失。我肯定我错过了一些东西,只需要一些指导。到目前为止,这是我的代码。在 VB 中执行此操作,所以请帮助!!!

Using con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Eric\Documents\Fadv.accdb")
        Dim SQL As String = ("SELECT FirstName, LastName FROM info")

        Dim cmd As New OleDbCommand(SQL, con)
        con.Open()

        Dim reader As OleDbDataReader
        reader = cmd.ExecuteReader()

        While reader.Read()
            txtFirstName.Text = reader(0).ToString()

            Console.WriteLine(" {0} = {1}", reader("FirstName"), 
                reader("LastName"))

            txtFirstName.Text = reader(0).ToString()

        End While
        reader.Close()

End Using
4

1 回答 1

2
Using con = New OleDbConnection("Provider= blah blah blah...")
    Dim SQL As String = "SELECT FirstName, LastName FROM info WHERE FirstName = ?"

    ' OleDbCommand supports Dispose
    Using cmd As New OleDbCommand(SQL, con)
        cmd.Parameters.AddWithValue("@p1", txtWhere.Text)

        con.Open()

        Dim reader As OleDbDataReader
        reader = cmd.ExecuteReader()

        ' a listbox to store more than one result
        lstResults.Items.Clear          ' clear old stuff

        While reader.Read()
            lstResults.Items.Add(String.Format("{0}, {1}",
                 reader.Item(1).ToString, reader.Item(0).ToString())

            Console.WriteLine(" {0} = {1}", reader("FirstName"), 
                reader("LastName"))
        End While
        reader.Close()
   End Using

End Using

可以修改 SQL 以搜索名称 LIKE,这样您就可以一次找到 Eric、Erin 和 Erica。您还可以使用其他数据访问方法来简单地触发查询并将一些控件(如 a )绑定DataGridView到结果。

最后,参数保护您免受Little Bobby Tables的访问。学习他们,了解他们,爱他们。

于 2014-05-30T23:10:59.053 回答