[英]“Incorrect syntax near '='” runtime error c# asp.net
SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);
SqlCommand command = new SqlCommand();
command.CommandText =
"INSERT INTO [Users]
VALUES (Username=@username, Firstname=@firstname
, Lastname=@lastname, ProfilePic=NULL, Bio=@bio, Email=@email
, EmailIsVerified=@emailverified, Hash=@hash, CompanyID=@companyid)";
command.Parameters.AddWithValue("@username", m_username);
command.Parameters.AddWithValue("@firstname", m_firstname);
command.Parameters.AddWithValue("@lastname", m_lastname);
command.Parameters.AddWithValue("@bio", m_bio);
command.Parameters.AddWithValue("@email", m_email);
command.Parameters.AddWithValue("@emailverified", (m_emailIsVerified ? "yes" : "no"));
command.Parameters.AddWithValue("@hash", m_hash);
command.Parameters.AddWithValue("@companyid", m_companyID);
command.CommandType = CommandType.Text;
command.Connection = sqlConnection;
sqlConnection.Open();
command.ExecuteNonQuery();
sqlConnection.Close();
通過上面的代碼,我得到“語法錯誤=”附近的錯誤。 我做錯了什么?
您需要更改INSERT語句的語法:
INSERT INTO [Users] (UserName, FirstName, ...)
SELECT @UserName, @firstname, ...
有關INSERT語法的文檔
最好將要INSERT INTO
的列明確列出。 如果表的列順序被修改,這可以防止任何(可能難以解決)問題。 這可能會導致您的INSERT
失敗(插入無效類型),或者將值插入意外列(對列進行重新排序,但是它們具有相同的類型,因此插入將成功)
在您的INSERT語句中,請勿使用Username = @ username等,因為這是無效的SQL。 它應該看起來像這樣:
command.CommandText = "INSERT INTO [Users] VALUES (@username, @firstname, @lastname, NULL, @bio, @email, @emailverified, @hash, @companyid)";
這假定值的順序與數據庫中列的順序相同,否則,您也需要指定列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.