当Dapper不是对象时,如何使用Dapper正确声明SQL更新请求中的变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当Dapper不是对象时,如何使用Dapper正确声明SQL更新请求中的变量?相关的知识,希望对你有一定的参考价值。

我想这样做:

public int UpdateOneColumn(string dbName, string tableName, string columnName, string newValue, string whereColumnName, string whereColumnNameValue)
{
    string sql = @"update @tableName set @columnName = @newValue where @whereColumnName = @whereColumnNameValue";

    return connection.Execute(sql, new {tableName, columnName, newValue, whereColumnName, whereColumnNameValue });    
}

但是我收到了一个错误

必须声明tableName

有人知道如何正确声明我的变量“tableName,columnName,newValue,whereColumnName和whereColumnNameValue”?

这个功能是否正确? (我不确定我能做update @tableNamewhere @whereColumnName

答案
public int UpdateOneColumn(string dbName, string tableName, string setColumn, object setValue, string whereColumn, object whereValue)
{
    string sql = $"UPDATE {tableName} SET {setColumn} = @s WHERE {whereColumn} = @w";
    return connection.Execute(sql, new { s = setValue, w = whereValue });    
}

以上是关于当Dapper不是对象时,如何使用Dapper正确声明SQL更新请求中的变量?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 dapper 在进行选择时为 Guid 返回全零但表中的 guid 值设置正确?

如何在 Dapper 上执行严格的映射

如何在不明确指定主键的情况下使用 Dapper Extensions 将对象插入 PostGreSql?

如何使用 Dapper 实现工作单元模式?

dapper C#的Iconvertible问题

如何在 Dapper 中获取正确的 DateTime