0

レコード データベースに問題があります。btnOut をクリックする理由。システムは status=1 を保存します。誰か助けてください。ボタンに番号を設定します。これはコードです。エラーがないか確認してください。感謝。

私は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
4

1 に答える 1

0

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

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

btnOは定数です。変えることはできません。常に0になります。したがって、If / Thenチェックはばかげているだけです。つまり、常にtrueになります。Elseブロックに入れたものはすべて無価値です。つまり、コードを実行することはできません

于 2012-04-19T13:58:10.213 に答える