Wird die Verbindung geschlossen, wenn der Befehl verworfen wird und die Verbindung direkt im Befehl definiert ist?

8

Ich weiß, dass es viele Beispiele gibt, wo eine SqlConnection definiert ist und dann ein SqlCommand definiert ist, sowohl in Using blocks:

%Vor%

Meine Frage: Wenn ich die Verbindung direkt im SqlCommand definiere, schließt die Verbindung, wenn der Befehl entsorgt wird?

%Vor%     
Mike 04.01.2009, 01:21
quelle

4 Antworten

11

Nein, SqlCommand versucht niemals, die Verbindung zu schließen / zu entfernen.

    
Robert C. Barth 04.01.2009, 01:26
quelle
5

Nein, das Verbindungsobjekt wird erst entfernt, wenn Sie es explizit freigeben. Aber ich empfehle, Blöcke verwenden wann immer Sie können.

    
milot 04.01.2009 01:29
quelle
4

Die Verbindung wird nicht geschlossen, Sie müssen sie entweder selbst schließen oder mit Hilfe eines Statements in eine eigene einfügen.

Auch hier ist ein Tipp, um Ihre using Blöcke etwas lesbarer zu machen:

%Vor%     
Andrew Hare 04.01.2009 01:33
quelle
-2

@milot

  

Aber meine Empfehlung ist die Verwendung von Blöcken wann immer Sie können.

Die Verwendung von Blöcken ist nett, aber nutzlos, wenn Sie mit nicht IDisposable Objekten arbeiten, und das kann verwirrend sein, wenn Sie die Verwendung von Blöcken überall verwenden.

Seien Sie vorsichtig, da Ihre Objekte möglicherweise nicht disponiert werden, wenn sie IDisposable nicht implementieren.

Hoffe, das hilft.

    
Yoann. B 04.01.2009 01:59
quelle

Tags und Links