需要你的帮助以进行以下编码,即时尝试在vb.net上创建登录表单,但系统显示错误“运营商'='未定义为'Nothing'并输入'OleDbCommand'。”
下面的是我的编码
enter code here
Dim MyOledbCommand As OleDbCommand = New OleDbCommand()
If MyCommand = New OleDbCommand("SELECT * FROM Login WHERE username = '" & txtuser.Text & "' and password ='" & _
txtpass.Text & "'", OleDbConn) Then
MsgBox("Login Success")
Form1.Show()
Else
MsgBox("Login Failed")
End If
答案 0 :(得分:2)
创建新的OleDbCommand
实际上根本不会执行它,也不是If
语句的有效条件。我怀疑你想要的东西:
Dim sql = "SELECT COUNT(*) FROM Login WHERE username = ? and password = ?"
Dim count As Integer
Using command As OleDbCommand = New OleDbCommand(sql, OleDbConn)
command.Parameters.Add("@User", OleDbType.VarChar).Value = txtuser.Text
command.Parameters.Add("@Password", OleDbType.VarChar).Value = txtpass.Text
count = CInt(command.ExecuteScalar())
End Using
If count > 0 Then
MsgBox("Login Success")
Form1.Show()
Else
MsgBox("Login Failed")
完全语法可能稍微关闭(我不是VB程序员),但它的要点应该没问题。注意:
Using
语句,以便命令在块的末尾自动处理。你应该为你的连接做同样的事情....如果你试图为整个程序保持相同的连接打开,你不应该。让连接池管理它。BackgroundWorker
或异步方法。