Feedback

C# - Fire-and-forget SQL-query (in 3 Zeilen)

Veröffentlicht von am 9/3/2010
(1 Bewertungen)
Dieses Snippet soll eine kurze Notation für 1-Click-Funktionen (Setup, Reset-Funktionen, dergleichen) zeigen, welche keine Rückgabe erfordern und direkt auf dem SQL Server arbeiten.

Es verwendet einen vorkonfigurierten ConnectionString aus der Konfigurationsdatei.
using (System.Data.SqlClient.SqlCommand c = new System.Data.SqlClient.SqlCommand("exec MeineStoredProcedure", 
    new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["meinConnectionString"].ConnectionString)))
{
    c.Connection.Open();
    c.ExecuteNonQuery();
}
//myControl.DataBind(); // falls der Query gebundene Daten verändert...
Abgelegt unter sql, bind, asp.net, connection string.

3 Kommentare zum Snippet

RoSi schrieb am 9/3/2010:
Bewirkt das "EXEC", dass der Ablauf der SP nicht abgewartet wird und ExecuteNonQuery() sogleich beendet wird? das kann ich mir kaum vorstellen, da die Funktion ja die Anzahl der betroffenen Zeilen zurückliefert. M.E. macht das nur Sinn, wenn diese 1-Click-Methode asynchron aufgerufen wird. Lasse mich aber gern eines besseren belehren.
Keks1911 schrieb am 9/3/2010:
Nein, der SQL-Befehl hat mit dem Snippet nichts zu tun. Das Schlüsselwort 'exec' ist für Einzeiler ohnehin optional.
RoSi schrieb am 9/4/2010:
Sorry, dann verstehe ich den Sinn nicht. Wenn man sich die FAQ durchliest, welchen Zweck die Seite hat, dann halte ich dieses "Snippet" für vollkommen überflüssig. Das ^^ ist doch ein ganz normaler DB-Zugriff. (Im Übrigen: wenn man die Befehle c.Connection.Open(); c.ExecuteNonQuery(); in eine Zeile packt, dann hätte man auch mit dem Slogan "Zweizeiler" werben können ;-).
 

Logge dich ein, um hier zu kommentieren!