簡體   English   中英

SQL插入語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM