VB.net / Oracle select语句从textbox输入到datagrid

时间:2011-11-14 05:29:41

标签: vb.net oracle

我有一个文本框和一个数据网格。我试图在文本框中输入姓氏,并将该姓氏的整个记录​​从oracle数据库返回到datagrid。下面的代码当前返回表中的所有记录,而不是按姓氏搜索。

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim myString As String
    Dim myArg As String
    Dim mysql As String
    Dim myConn As New OleDb.OleDbConnection()

    ' Create new connection
    myString = "Provider=msdaora;Data Source=XXXX;User Id=XXXX;Password=XXXX;"
    myConn.ConnectionString = myString
    myArg = TextBox1.Text
    mysql = "select * from table1 where lastname like '%'"
    Try
        myConn.Open()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    Dim myDataadapter As New OleDb.OleDbDataAdapter(mysql, myConn)

    Dim myDs As New DataSet

    myDataadapter.Fill(myDs, "customer")

    Dim prmLName As New OleDb.OleDbParameter()
    prmLName.Direction = ParameterDirection.Input
    prmLName.Size = "10"
    prmLName.Value = TextBox1.Text


    DataGridView1.DataSource = myDs
    DataGridView1.DataMember = "customer"
End Sub
End Class

3 个答案:

答案 0 :(得分:1)

Private Sub Search1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Search1.Click
   Dim connectionstring As String = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=dps; User=root;Password=xxxxx;Option=3;"
   Dim conn As New OdbcConnection(connectionstring)
   conn.Open()

   Dim da As New OdbcDataAdapter("select * from Student where Grade ='" & Label1.Text & "' and lastName like '%" & txtLastName.Text & "%'", conn)
   Dim ds As New DataSet
   da.Fill(ds)
   DataGridView1.DataSource = ds.Tables(0)
   DataGridView1.Refresh()

   conn.Close()

答案 1 :(得分:0)

你没有传递lastname的参数值,所以它把它作为null并返回所有记录:

mysql = "select * from table1 where lastname like '%" 

您可以这样做: -

 mysql = "select * from table1 where lastname like '%" & txtLastName.Text & "%'"  

我还建议您按SqlCommand.Parameters Property传递参数以避免SQL Injection.

答案 2 :(得分:0)

您应该按如下方式编写您的选择查询。

mysql = "select * from table1 where lastname like '%" & myArg & "'" 
相关问题