Ich habe eine Liste von Ints namens idList. Ich möchte den TaskState in der Tabelle "Tasks" für jede ID in dieser ID-Liste aktualisieren. Dies ist, wie mein Code sieht jetzt:Optimieren von Aktualisierungsabfragen, Ausführen in einer Schleife?
using (SqlConnection dataconnection = new SqlConnection(DB))
{
SqlCommand sqlCommandDelete = new SqlCommand()
{
Connection = dataconnection
};
dataconnection.Open();
foreach (var id in idList)
{
qlCommandDelete.CommandText = $"UPDATE Tasks SET TaskState = 2 WHERE TaskID = {id}";
sqlCommandDelete.ExecuteNonQuery();
}
}
Das Problem ist jetzt, dass ich Abfrage ausführen, jedes Mal, wenn die Schleife Feuer, die ich bin nicht sicher, optimal ist. Gibt es vielleicht eine Möglichkeit, alle update-Anweisungen zu verbinden und die Abfrage nur einmal auszuführen, die weniger schwer wäre?
Zum Beispiel folgt, '$ "UPDATE ... WHERE TaskId IN ({String.Join (" ", idList)})" ' – Evk
Sie können versuchen mit TVP –