Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Studio错误,是否需要其他表达式?_Vb.net_Visual Studio 2010 - Fatal编程技术网

Vb.net Visual Studio错误,是否需要其他表达式?

Vb.net Visual Studio错误,是否需要其他表达式?,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我写了一些代码,并得到了两个错误: “Else”前面必须有匹配的“If”或“ElseIf”。 需要一个表达式。 代码如下: Imports System.Data.Odbc Public Class FormLogin Dim CMD As New OdbcCommand Dim RD As OdbcDataReader Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.

我写了一些代码,并得到了两个错误:

“Else”前面必须有匹配的“If”或“ElseIf”。 需要一个表达式。 代码如下:

Imports System.Data.Odbc
Public Class FormLogin
    Dim CMD As New OdbcCommand
    Dim RD As OdbcDataReader

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox1.Text = "" Or TextBox2.Text = "" Then MsgBox("Data Login Belum Lengkap!")
        Exit Sub
        Else
        Call Koneksi()
        CMD = New OdbcCommand("Select * From tbl_admin where kode_admin=" & TextBox1.Text & "and password_admin=" & TextBox2.Text &, Conn)
        RD = CMD.ExecuteReader
        RD.Read()
        If RD.HasRows Then
            Me.Close()
            FormMenuUtama.Show()
            FormMenuUtama.LoginToolStripMenuItem.Enabled = False
            FormMenuUtama.LogoutToolStripMenuItem.Enabled = True
            FormMenuUtama.MasterToolStripMenuItem.Enabled = True
            FormMenuUtama.TransaksiToolStripMenuItem.Enabled = True
            FormMenuUtama.LaporanToolStripMenuItem.Enabled = True
        Else
            MsgBox("Kode Admin atau Password Salah")
        End If
    End Sub

    Private Sub FormLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.MaxLength = 6
        TextBox2.PasswordChar = "*"
        TextBox1.Clear()
        TextBox2.Clear()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub
End Class

添加另一个端点(如果在端点子节点之前)

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If TextBox1.Text = "" Or TextBox2.Text = "" Then MsgBox("Data Login Belum Lengkap!")
    Exit Sub
    Else
    Call Koneksi()
    CMD = New OdbcCommand("Select * From tbl_admin where kode_admin=" & TextBox1.Text & "and password_admin=" & TextBox2.Text &, Conn)
    RD = CMD.ExecuteReader
    RD.Read()
    If RD.HasRows Then
        Me.Close()
        FormMenuUtama.Show()
        FormMenuUtama.LoginToolStripMenuItem.Enabled = False
        FormMenuUtama.LogoutToolStripMenuItem.Enabled = True
        FormMenuUtama.MasterToolStripMenuItem.Enabled = True
        FormMenuUtama.TransaksiToolStripMenuItem.Enabled = True
        FormMenuUtama.LaporanToolStripMenuItem.Enabled = True
    Else
        MsgBox("Kode Admin atau Password Salah")
    End If
    End If
End Sub
1不要在If语句中的Then之后添加代码。它变成了一条线

因此:

而不是

If TextBox1.Text = "" Or TextBox2.Text = "" Then MsgBox("Data Login Belum Lengkap!")
...
CMD = New OdbcCommand("Select * From tbl_admin where kode_admin=" & TextBox1.Text & "and password_admin=" & TextBox2.Text &, Conn)
2有一个额外的&

因此:

而不是

If TextBox1.Text = "" Or TextBox2.Text = "" Then MsgBox("Data Login Belum Lengkap!")
...
CMD = New OdbcCommand("Select * From tbl_admin where kode_admin=" & TextBox1.Text & "and password_admin=" & TextBox2.Text &, Conn)

Button1\u Click有两个If,但只有一个EndIf…看起来我可以通过在TextBox2中输入类似或1=1的内容来击败您的密码检查。您应该研究使用SQL参数来传递值。此外,您忘记关闭连接。此外,查询必须使用参数以提高安全性,您也可以在帖子中添加参数。rest all fineOP似乎也缺少每个值的“开始”和“结束”。