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)
        {
            //select 
            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 user profile iconChristian S.: Code- durch C#-Tags ersetzt
Moderiert von user profile iconChristian 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