如何使用OleDbDataReader vb显示我的查询数据

时间:2014-05-30 22:48:38

标签: vb.net search oledbdatareader

我知道在这个网站上为大多数人在公园散步,但对于像我这样的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

1 个答案:

答案 0 :(得分:1)

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。您还可以使用其他数据访问方法来简单地触发查询,并将某些控件(例如DataGridView)绑定到结果。

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