VB.net / Oracle выбор оператора из текстового поля ввода в сетку данных - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть текстовое поле и сетка данных. Я пытаюсь ввести фамилию в текстовое поле, и она возвращает всю запись с этой фамилией в сетку данных из базы данных оракула. Код ниже в настоящее время возвращает все записи в таблице и не ищет по фамилии.

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 ]

1 голос
/ 26 сентября 2012
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()
0 голосов
/ 14 ноября 2011

Вы должны написать свой запрос на выборку следующим образом.

mysql = "select * from table1 where lastname like '%" & myArg & "'" 
0 голосов
/ 14 ноября 2011

Вы не передали значение параметра для фамилии, поэтому оно принимает его как ноль и возвращает все записи:

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

Здесь вы должны сделать следующее: -

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

Я также предлагаю вам передать параметр в Свойство SqlCommand.Parameters , чтобы избежать SQL-инъекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...