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

名前 LIKE を検索するように SQL を変更すると、Eric、Erin、および Erica を一度にすべて見つけることができます。他のデータ アクセス方法を使用してクエリを単純に実行し、a などのコントロールをDataGridView結果にバインドすることもできます。

最後に、パラメーターは、Little Bobby Tablesからの訪問からあなたを守ります。それらを学び、知り、愛しなさい。

于 2014-05-30T23:10:59.053 に答える