【问题标题】:Unable to insert a row with parameter无法插入带参数的行
【发布时间】:2014-07-03 07:49:33
【问题描述】:

我正在尝试以下代码:

try
{
    SqlConnection conn = new SqlConnection("server=ARSLAN-LAPI\\SQLEXPRESS;" +
                         "Trusted_Connection=yes;" +
                         "database=OTTS; " +
                         "connection timeout=30");
    conn.Open();
    String name=UserName.Text;
    String pwd=Password.Text;
    String query = "INSERT INTO dbo.user (username,password) 
                     VALUES(@username,@password)";
    SqlCommand command = new SqlCommand(query, conn);
    command.Parameters.Add("@username",name);
    command.Parameters.Add("@password",pwd);
    command.ExecuteNonQuery();
    conn.Close();
    ErrorMessage.Text="Well done!";
}
catch(SqlException ex)
{
     ErrorMessage.Text="You failed!" + ex.Message;
}

收到错误

You failed!Incorrect syntax near the keyword 'user'.

请指导我..

【问题讨论】:

    标签: c# sql-server visual-studio sql-server-2012


    【解决方案1】:

    User is a reserved keyword,我强烈建议将该字段名称更改为不同的名称。
    但是,如果您仍然坚持使用它,请记住在每次需要时将其括在方括号中。

    string query = "INSERT INTO [dbo].[user] (username,password) VALUES(@username,@password)";
    

    【讨论】:

      【解决方案2】:

      试试这个:

      INSERT INTO dbo.[user] (username,password)   VALUES(@username,@password)
      

      【讨论】:

        【解决方案3】:

        试试这样的,

        SqlCommand command = new SqlCommand(query, conn);
        command.Parameters.Add("@username",SqlDbType.VarChar,50).Value = name;
        command.Parameters.Add("@password",SqlDbType.VarChar,50).Value= pwd;
        command.ExecuteNonQuery();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-06
          • 1970-01-01
          • 2012-10-03
          • 1970-01-01
          相关资源
          最近更新 更多