2011-11-14 20 views
0

私はテキストボックスとデータグリッドを持っています。私はテキストボックスに姓を入力しようとしており、その姓からのレコード全体をOracleデータベースのデータグリッドに戻すようにしています。以下のコードは現在、テーブル内のすべてのレコードを返し、姓で検索していません。そのがnullとすべてのレコードを返すようにそれを取るようVB.net/Oracleは、テキストボックス入力からデータグリッドへの入力を受け取ります

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 

答えて

0

あなたは、姓のパラメータ値を渡しませんでした:

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

ここでは次のように行うだろう: -

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

私はまた、回避するためにSqlCommand.Parameters Propertyによってパラメータを渡すことを提案します。SQL Injection.

+0

ありがとう! – Christopher

+0

あなたは大歓迎です:) – Muse

0

Y ouは次のように選択クエリを書く必要があります。この上のヘルプや提案を

mysql = "select * from table1 where lastname like '%" & myArg & "'" 
+0

あなたの答えもありがとうskk! – Christopher

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() 
関連する問題