#sql-server #vb.net
#sql-server #vb.net
Вопрос:
Я получаю исключение при запуске приведенного ниже VB.NET код для проверки пользователя..В исключении указано, что «Неправильный синтаксис рядом с переменной user»
Кто-нибудь может сказать мне, где я ошибаюсь?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text.Trim().Length = 0 Or TextBox2.Text.Trim().Length = 0 Then
MsgBox("Enter a user id and password")
Return 'Terminate this method
End If
Dim myconnection As SqlConnection
Dim mycommand As SqlCommand
Dim dr As SqlDataReader
Dim userid = TextBox1.Text
Dim password = TextBox2.Text
Try
myconnection = New SqlConnection("server=PARTH- PCSQLEXPRESS;uid=sa;pwd=parth;database=fcrit")
myconnection.Open()
mycommand = New SqlCommand("select * from user where [user id]=@userid and [password]=@password", myconnection)
mycommand.Parameters.Add("@userid", SqlDbType.VarChar, 30).Value = userid
mycommand.Parameters.Add("@password", SqlDbType.VarChar, 30).Value = password
'mycommand = New SqlCommand("select * from user where user id='" amp; TextBox1.Text amp; "' and password='" amp; TextBox2.Text amp; "'", myconnection)
dr = mycommand.ExecuteReader()
If (dr IsNot Nothing) Then
If (dr.Read()) Then
MsgBox("User is authenticated")
Form2.Show()
Else
MsgBox("Please enter correct username and password")
End If
End If
myconnection.Close()
Catch ex As Exception
Throw
Finally
End Try
End Sub
Ответ №1:
Попробуйте изменить свой SQL на —
"select * from [user] where [user id]=@userid and [password]=@password"
Согласно этой странице ‘User’ является зарезервированным словом
Ответ №2:
User
это зарезервированное слово в SQL Server.
Заключите имя таблицы в квадратные скобки:
mycommand = New SqlCommand("select * from [user] where [user id]=@userid and [password]=@password", myconnection)