string s = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True";
SqlConnection c = new SqlConnection(s);
SqlCommand cmd;
string a = @"insert into login(user name) values ('"+TextBox1.Text+"')";
cmd = new SqlCommand(a,c);
c.Open();
cmd.ExecuteNonQuery();
c.Close();
-3
A
回答
0
如果user name
列有空間,然後用quotes
string a = @"insert into login(\"user name\") values ('"+TextBox1.Text+"')";
圍繞着它。如果用戶名欄不具有用戶和名之間的空間,那麼你應該用戶的用戶名
string a = @"insert into login(username) values ('"+TextBox1.Text+"')";
1
環繞你的user name
帶括號的列(如果它實際上包含空格):
string a = @"insert into login([user name]) values ('"+TextBox1.Text+"')";
你也應該使用包含名稱中有空格應在方括號
string s = @"Data Source=.....";
using(SqlConnection c = new SqlConnection(s))
using(SqlCommand cmd = new SqlCommand("insert into login([user name]) " +
"values (@uname)", c))
{
c.Open();
cmd.Parameters.AddWithValue("@uname", textbox1.Text);
cmd.ExecuteNonQuery();
}
而且記住,字符串連接來構建SQL命令是一個真正的錯誤也時封閉Parameterized Queries
3
字段中輸入您代碼似乎工作。你被暴露給Sql Injection,並且當有人試圖插入帶有引號的用戶名時,你的代碼突然不再起作用。
取而代之的是如上所述的parameterized query刪除這些弱點。
順便說一句,雖然你仍然可以,改變該字段的名稱,並刪除空間。使用它並沒有任何好處,每個將來的查詢都會受到這個惱人的問題的影響(丟失括號)
相關問題
- 1. SQL 2000 INCORECT附近的語法與
- 2. 如何解決SSRS中'='附近錯誤的語法錯誤?
- 3. 如何解決下面的代碼java.lang.StackOverflowError?
- 4. 如何解決下面的htaccess代碼
- 5. 我如何解決下面的代碼?
- 6. SQLEXCEPTION是由用戶代碼,不正確的語法附近「3」
- 7. 如何解決「交易」附近的錯誤語法?
- 8. 如何解決「附近的語法錯誤」,「」?
- 9. 如何解決下面給出的代碼中的這個語法錯誤?
- 10. 語法錯誤附近意外的標記`('在下面的代碼
- 11. 如何找到解決應用的用戶所在地附近的用戶
- 12. 如何解決錯誤代碼= 1,msg =接近「,」:語法錯誤android中的sqlite
- 13. 如何解決附近有語法錯誤「)」
- 14. 如何在下面的PostgreSQL查詢中解決代碼重複?
- 15. 如何解決「近‘與’:語法錯誤」
- 16. 如何解決下面代碼中的泄漏?的ObjectiveC
- 17. 需要解決下面的代碼
- 18. 請幫忙解決下面的代碼
- 19. 如何在下面的代碼中解決「無法讀取屬性appendChild of null」?
- 20. 錯誤在下面的代碼附近拋出IOException
- 21. 如何解決未知代碼中的錯誤代碼如下
- 22. '='附近的語法不正確。在代碼C#
- 23. 如何解碼下面的代碼
- 24. 如何解決下面的Sqlite代碼的內存泄漏?
- 25. System.Data.SqlClient.SqlException:關鍵字 '用戶' 附近有語法錯誤:附近關鍵字 '用戶'
- 26. java在下面的代碼中的字符串泄漏memery?如何解決它
- 27. SQLite的 - 如何解決語法錯誤(代碼1)
- 28. 「。」附近的語法錯誤。
- 29. 「*」附近的語法錯誤
- 30. 「/」附近的語法錯誤
您的INSERT查詢無效。它也開放給SQL注入,這是另一個(相當嚴重)的問題。 –
如果'用戶名'是實際的列名,那麼您需要將其限定爲'insert into login([user name])values ...' – StuartLC