【问题标题】:Sql update statement with named parameters带有命名参数的 Sql 更新语句
【发布时间】:2014-03-05 13:38:28
【问题描述】:
public void UpdateRegistration(User userModel)
    {
        using (IDbConnection connection = BaseRepository.OpenConnection())
        {
            string query = "UPDATE [dbo].[TBUser] " +
                "(CreatedBy, CreatedDate, ModifiedBy, ModifiedDate) VALUES " +
                "(@CreatedBy, @CreatedDate, @ModifiedBy, @ModifiedDate) WHERE " +
                "UserId = @UserId;";
            connection.Execute(query, userModel);
        }
    }

运行时出现以下异常

<Message>An error has occurred.</Message>
<ExceptionMessage>Incorrect syntax near '('.</ExceptionMessage>
<ExceptionType>System.Data.SqlClient.SqlException</ExceptionType>

userModel 具有与之关联的所有属性。

【问题讨论】:

    标签: c# sql .net sql-server asp.net-mvc


    【解决方案1】:

    语法是

    UPDATE [table]
    SET [field] = Value
    WHERE ....
    

    http://technet.microsoft.com/en-us/library/ms177523.aspx

    所以你的查询应该是

    UPDATE [dbo].[TBUser] 
    SET CreatedBy = @CreatedBy, 
        CreatedDate = @CreatedDate,
        ModifiedBy = @ModifiedBy,
        ModifiedDate = @ModifiedDate
    WHERE UserId = @UserId;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      相关资源
      最近更新 更多