使用VB.Net更新SQLite数据库时出错
尝试使此代码正常工作,以便更新我的SQLite数据库。不断收到一个错误,表示语句结尾应为错误BC30205。我看不出我错过了什么!这是我第一次尝试在SQL中使用update语句,所以我可能错过了一些明显的东西!我已经用箭头标记了我出错的代码行使用VB.Net更新SQLite数据库时出错,sql,vb.net,sqlite,sql-update,sharpdevelop,Sql,Vb.net,Sqlite,Sql Update,Sharpdevelop,尝试使此代码正常工作,以便更新我的SQLite数据库。不断收到一个错误,表示语句结尾应为错误BC30205。我看不出我错过了什么!这是我第一次尝试在SQL中使用update语句,所以我可能错过了一些明显的东西!我已经用箭头标记了我出错的代码行 Public Partial Class Change_Password Public Sub New() ' The Me.InitializeComponent call is required for Windows Forms design
Public Partial Class Change_Password
Public Sub New()
' The Me.InitializeComponent call is required for Windows Forms designer support.
Me.InitializeComponent()
'
' TODO : Add constructor code after InitializeComponents
'
End Sub
Dim SQLconnect As New System.Data.SQLite.SQLiteConnection()
Dim SQLcommand As System.Data.SQLite.SQLiteCommand
Dim SQLreader As System.Data.SQLite.SQLiteDataReader
Dim Password1 As String = ""
Dim Password2 As String = ""
Public Class Password
Public shared usernamechange As String = ""
End Class
Sub Cmd_NextClick(sender As Object, e As EventArgs)
If Trim(txt_Password_Box.Text) = "" Then
MsgBox("Please enter a password")
Else
Password1 = txt_Password_Box.Text
txt_Password_Box.Text = ""
txt_Password_Box.Focus
lbl_Instruction.Text = "Please re-enter the exact same password!"
cmd_Submit.Visible = True
cmd_Next.Visible = False
Me.AcceptButton = cmd_Submit
End If
End Sub
Sub Change_PasswordLoad(sender As Object, e As EventArgs)
cmd_Submit.Visible = False
Me.AcceptButton = cmd_Next
SQLconnect.ConnectionString = "Data Source=KCD.s3db;"
SQLconnect.Open()
End Sub
Sub Cmd_SubmitClick(sender As Object, e As EventArgs)
If Trim(txt_Password_Box.Text) = "" Then
MsgBox("Please enter the password again")
Exit Sub
Else
Password2 = txt_Password_Box.Text
txt_Password_Box.Text = ""
End If
If Password1 = Password2 Then
SQLcommand = SQLconnect.CreateCommand
------> SQLcommand.CommandText = "UPDATE Staff SET Password = '" & password1 & "' WHERE '" Username = "' & password.usernamechange & '"""
SQLcommand.Dispose()
MsgBox("Your password has been changed",vbInformation,"Password Changed")
Me.Close
Else
MsgBox("Passwords do not match. Please try again.")
txt_Password_Box.Focus
cmd_Submit.Visible = False
cmd_Next.Visible = True
Password1 = ""
Password2 = ""
lbl_Instruction.Text = "Please enter a new password!"
Me.AcceptButton = cmd_Next
End If
End Sub
End Class
希望有人能帮助我!谢谢这句话好像不对。改变
SQLcommand.CommandText = "UPDATE Staff SET Password = '" & password1 & "' WHERE '" Username = "' & password.usernamechange & '"""
到
顺便说一句,连接这样的字符串容易受到攻击。谢谢!它消除了错误,但语句实际上对数据库没有任何作用!知道为什么会这样吗?用相同的where子句运行select语句,看看它是否返回任何内容。是的,当我在同一表单上运行select语句时,我会得到数据!我运行了以下语句SQLcommand.CommandText=“selectusername FROM Staff WHERE Username='”&Username&“'”提取数据SQLreader=SQLcommand.ExecuteReader()Dim测试为String=SQLreader(“Username”)哦,好的!为此道歉!它只是不更新数据库中预先存在的记录!只是更新一下:我昨晚放弃了工作。今天回到这里,代码运行得很好!非常感谢您的帮助!:)真的很感激!
SQLcommand.CommandText = "UPDATE Staff SET Password = '" & password1 & "' WHERE Username = '" & password.usernamechange & "'"