繁体   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