Nat*_*ves 5 c# sql asp.net-mvc dapper
我需要进行更新,但列名是动态的。
代码段:
using (var cn = Connection)
{
var sql = @"UPDATE Teste
SET @columnName = @parameter,
DT_PROCESSAMENTO = @vDtProcessamento
WHERE ID = @ID";
var resultado = cn.Execute(sql, new
{
columnName,
parameter,
ID
});
}
Run Code Online (Sandbox Code Playgroud)
是否可以将列名作为参数传递?这段代码是我做的,但是不起作用。没有例外,但更新不起作用。
不,你不能那样做,因为列名不能是变量。为此,您确实需要像这样的动态 SQL:
using (var cn = Connection)
{
var sql = $@"UPDATE Teste
SET {columnName} = @parameter,
DT_PROCESSAMENTO = @vDtProcessamento
WHERE ID = @ID";
var resultado = cn.Execute(sql, new
{
parameter,
ID
});
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码片段中,您可以组合@以在字符串内使用换行符和$以在字符串中插入变量 - 它比使用更清晰和更短String.Format。
我已经将类似的东西与 dapper 用于一些特定的场景。
| 归档时间: |
|
| 查看次数: |
1518 次 |
| 最近记录: |