Ich versuche, eine dynamische SQL-Abfrage zu erstellen, um eine Tabelle in SQL Server wie folgt zu aktualisieren:
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);
}
Ich habe eine Liste von Objekten, es hat viele Eigenschaften, aber um ein Beispiel kurz zu machen, hier schreibe ich nur StokKodu und StokAdi. Dieser Code löst einen Fehler aus
Falsche Syntax bei '='
Ich denke, dieser Code sollte mit Dapper funktionieren.
Wie kann ich diesen Code funktionieren lassen, wo ist mein Fehler? Danke für die Hilfe von jetzt an.
Alles, was ich tue, ändert sich
string sqlSabit
zu
StringBuilder sqlSabit
und statt Zeichenfolgen mit + = zu verbinden, habe ich sqlSabit.Append () benutzt, jetzt funktioniert der Code. Und ich testete mit String, Integer und Float typisierte Spalten / Parameter, kein Problem.
Aber konnte nicht verstehen, warum StringBuilder das Problem löst.