簡體   English   中英

“'='附近的語法不正確”運行時錯誤C#asp.net

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

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