首页 > 解决方案 > 当它不是对象时,如何使用 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 @tableName并且where @whereColumnName

标签: c#sql-updatedapperexecute

解决方案


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 });    
}

推荐阅读