[英]syntax error in string in query expression
即時通訊收到錯誤,其中“查詢EXPRESSION'用戶名=用戶'中字符串的語法錯誤我認為問題出在“ me.Username.tag”中,但即時通訊卡住了。
conn = New OleDbConnection(Get_Constring)
conn.Open()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = "select Username, fname, lname, mname, [password], [level], Question, answer from Instructor where Username= '" & Me.txtusername.Tag
dr = cmd.ExecuteReader
If dr.HasRows Then
While dr.Read
Me.txtusername.Tag = dr("Username")
Me.txtfname.Text = IIf(Not IsDBNull(dr("fname")), dr("fname"), "")
Me.txtlname.Text = IIf(Not IsDBNull(dr("lname")), dr("lname"), "")
Me.txtinitial.Text = IIf(Not IsDBNull(dr("mname")), dr("mname"), "")
Me.txtpassword.Text = IIf(Not IsDBNull(dr("password")), dr("password"), "")
Me.lbllevel.Text = IIf(Not IsDBNull(dr("level")), dr("level"), "")
Me.txtusername.Text = IIf(Not IsDBNull(dr("Username")), dr("Username"), "")
Me.cmbquestion.Text = IIf(Not IsDBNull(dr("Question")), dr("Question"), "")
Me.txtanswer.Text = IIf(Not IsDBNull(dr("answer")), dr("answer"), "")
End While
End If
您沒有在查詢中關閉引號:
where Username= '" & Me.txtusername.Tag
應該:
where Username= '" & Me.txtusername.Tag & "'"
重要提示 :您的代碼可能容易受到SQL注入攻擊的攻擊。 請使用參數化查詢 。 像這樣:
cmd.CommandText = "select Username, fname, lname, mname, [password], [level], Question, answer from Instructor where Username= @username"
Dim parameter As New SqlParameter()
parameter.ParameterName = "@username"
parameter.SqlDbType = SqlDbType.NVarChar
parameter.Value = Me.txtusername.Tag
cmd.Parameters.Add(parameter);
我認為問題是您沒有關閉單引號。
試試這個:
cmd.CommandText = "select Username, fname, lname, mname, [password], [level], Question, answer from Instructor where Username= '" & Me.txtusername.Tag & "'"
您尚未關閉查詢末尾打開的單引號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.