我试图构建一个动态的SQL查询来更新SQL Server中的表,如下所示:
string alan = "SaticiKodu";
DynamicParameters paramStSabit = new DynamicParameters();
string sqlSabit = "UPTADE TBLSTSABIT SET ";
if (alan == "SaticiKodu")
{
sqlSabit += " SATICI_KODU = @SaticiKodu ,";
paramStSabit.Add("SaticiKodu", _msk.SaticiKodu);//_msk.SaticiKodu comes from List<T> in foreach loop
}
if (sqlSabit.Contains("=")) // here I check if I have any column update with '='
{
sqlSabit += "WHERE STOK_KODU = @StokKodu";
paramStSabit.Add("StokKodu", _msk.StokKodu);
sqlSabit= sqlSabit.Replace(",WHERE", " WHERE");
db.Execute(sqlSabit, paramStSabit, transaction: _transaction, commandType: CommandType.Text);
}
我有一个对象列表,它有很多属性,但为了简化示例,这里我只写StokKodu和StokAdi。此代码抛出错误
&#39; =&#39;的语法不正确
我认为这段代码应该适用于Dapper。
如何使这段代码有效,我的错误在哪里?感谢您的帮助。
答案 0 :(得分:0)
我所做的只是改变
string sqlSabit
到
StringBuilder sqlSabit
而不是使用+ =连接字符串,我使用了sqlSabit.Append(),现在代码正常工作。我用字符串,整数和浮点型列/参数测试,没问题。
但无法理解StringBuilder解决问题的原因。