[英]SQL Insert into statement
strSQL = "INSERT INTO Accounts UserName, Password VALUES ('" & txtUsername.Text & "', '" & txtEncryptedPassword & "');"
當執行代碼並引發錯誤時,但是沒有可見的問題。 救命!
密碼一詞在MS-Access中保留。
您需要在該名稱周圍使用方括號(或將其更改為其他名稱)
strSQL = "INSERT INTO Accounts (UserName, [Password]) VALUES (......
也就是說,請使用參數化查詢來構建sql命令。
像您這樣的字符串連接很容易被使用SQL Injection的黑客攻擊
同樣,如果用戶名或密碼包含單引號,則使用字符串連接構建的結果sql文本將無效。
strSQL = "INSERT INTO Accounts (UserName, [Password]) VALUES (?, ?)"
OleDbCommand cmd = new OleDbCommand(strSQL, connection);
cmd.Parameters.AddWithValue("@p1",txtUsername.Text);
cmd.Parameters.AddWithValue("@p2",txtEncryptedPassword);
cmd.ExecuteNonQuery();
您忘記了括號:
strSQL = "INSERT INTO Accounts (UserName, Password) VALUES ('" & txtUsername.Text & "', '" & txtEncryptedPassword & "');"
您在()
做這個錯誤,您必須添加:
您的代碼:
strSQL = "INSERT INTO Accounts UserName, Password VALUES ('" & txtUsername.Text & "', '" & txtEncryptedPassword & "');"
您必須將代碼更改為:
strSQL = "INSERT INTO Accounts (UserName, Password) VALUES ('" & txtUsername.Text & "', '" & txtEncryptedPassword & "');"
更新1:
"INSERT INTO `test`.`users` ( `username`, `password`) " & _
"VALUES ('" & txtUsername.Text & "', '" & txtPassword.Text & "');"
更新2:
"INSERT INTO users ( `username`,`password`)VALUES(@txtUsername.Text,@txtPassword.Text);"
"INSERT INTO users (Username,Password)VALUES(?,?);"
注意:test表示數據庫名稱,您應該更改數據庫名稱。
試試這個代碼:
Dim strSQL As String = "INSERT INTO tblDetail VALUES('" & strPersonCode _
& "','" & strForename & "','" & strSurname & "','" & strDateOfBirth & "'," & strCurrentlyWith & ",'" & strConditions & "')"
那樣做,但是改成你的名字。 將文本框的值聲明為字符串,然后使用它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.