Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - SqlCommand
mameolan - Fr 10.08.07 12:06
Titel: SqlCommand
Hallo erstmal,
ich habe follgende frage. wie macht ihr das immer so mit SqlCommand in funktionen.
schließt ihr jedesmal im hauptprogramm die datenbank verbindung oder schließt ihr die verbindung
in jeder funktion?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| public void database_output(string tabelle, SqlConnection verbindung) { SqlCommand sql = new SqlCommand("Select * FROM " + tabelle, verbindung); sql.CommandType = CommandType.Text; SqlDataReader result = sql.ExecuteReader(); while (result.Read()) { int spaltenzahl = result.FieldCount; Console.WriteLine("-----------------"); for (int i = 0; i < spaltenzahl; i++) { Console.WriteLine(result.GetName(i) + ":\t\t"); Console.WriteLine(result.GetValue(i)); } Console.WriteLine("-----------------"); } result.Close(); } |
Tschau
Moderiert von Christian S.: Code- durch C#-Tags ersetztModeriert von Christian S.: Topic aus C# - Die Sprache verschoben am Fr 10.08.2007 um 12:34
JüTho - Fr 10.08.07 14:41
Bei ADO.NET wird eine Verbindung immer nur so lange geöffnet, wie sie für die aktuelle Arbeit benötigt wird. Dies ergibt sich aus allen Beispielen der SDK-Doku.
Also: grundsätzlich vor einem DbCommand DbConnection.Open und danach DbConnection.Close ausführen; Ausnahme allenfalls dann, wenn unmittelbar nacheinander mehrere Befehle kommen (natürlich auch bei einer Transaction).
Jürgen
mameolan - Fr 10.08.07 19:16
nun ja ist eine c# konsolen Anwendung soll später als windowsform anwendung laufen.
ich fands bloss blöd, dass ich ich in einer for-Schleife jeweils verbindung auf und zumachen musste, weil ich sonst fehler bekomme.
tschau
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!