2012-04-19 11 views
0

私のレコードデータベースに問題があります。なぜbtnOutをクリックするのですか?システムは状態= 1を保存します 私を助けてください。番号をボタンに設定します。これはコードです、何かエラーがないかどうか確認してください。感謝。vb 2008を使用してボタンの番号を設定

私はVB 2008とdatabseのMySQLを使用してい

フォーム1

Private Sub btnIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIn.Click 
    Const btnIn As Integer = 1 
    Form1.Show() 
End Sub' 

Private Sub btnOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOut.Click 
    Const btnO As Integer = 0 
    Form1.Show() 
End Sub 

フォーム2

Private Sub btnD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnD.Click 
    Dim command As MySqlCommand 
    command = New MySqlCommand 
    Const btnO As Integer = 0 
    Const btnI As Integer = 1 


    command.CommandText = "SEARCH INTO visitor WHERE nokp VALUES ('" & TextBox1.Text & "')" 

    If TextBox1.Text = "Masukkan No.I/C Anda" Or TextBox1.Text = "" Then 
     MessageBox.Show("Sila Masukkan No Kad Pengenalan Anda", "Mesej", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) 

    Else 
     If btnO = 0 Then 
      command.Connection = conn 
      tkhupd = Now.ToString("yyyy-MM-dd HH:mm:tt") 
      command.CommandText = "INSERT INTO visitor(nok,tkhupd,status)VALUES ('" & TextBox1.Text & "','" & tkhupd & "','" & 1 & "')" 
      MessageBox.Show("ok") 
      command.ExecuteNonQuery() 
      TextBox1.ResetText() 

     Else 
      If btnO = 0 Then 
       command.Connection = conn 
       tkhupd = Now.ToString("yyyy-MM-dd HH:mm:tt") 
       command.CommandText = "INSERT INTO visitor(nok,tkhupd,status)VALUES ('" & TextBox1.Text & "','" & tkhupd & "','" & 1 & "')" 
       MessageBox.Show("ok Out") 
       command.ExecuteNonQuery() 
       TextBox1.ResetText() 
      End If 
     End If 
    End If 
    Exit Sub 

End Sub 
+0

これらのSQLインジェクションの脆弱性が再び発生します。私は昨日あなたの質問の1つに、クエリパラメータを実証した例を掲載しました。 **これは重要。** –

答えて

0

私はそれを言うことを憎むが、そのコードの中だけでそんなに間違ってあります。私はSQLインジェクションの脆弱性を開始することさえしないでください(今、あなたはハッキングを求めています)。いいえ、私はもっと基本的に行くでしょう。あなたのサンプルから次の2行を見てください:

Const btnO As Integer = 0 
'... 
If btnO = 0 Then 
    '... 
Else 
    '... 
End If 

btnOは定数です。変更することはできません。 は常にとなります。したがって、If/Thenチェックはちょうど愚かなことです。それは常に真実です。あなたがElseブロックに入れたものは無駄です:コードは決してを実行できます。

関連する問題