Dein Problem ist, dass du anscheinend eine Instanz von m_ConStr
hast; Wenn die Methode gleichzeitig aufgerufen wird, kann nur einer von ihnen die Verbindung verwenden, und der andere wird mit der Ausnahme, die Sie erhalten, fehlschlagen.
Verwenden Sie stattdessen dieses Muster:
%Vor%Mit anderen Worten, definieren Sie keine Verbindung als globale Variable für die Klasse.
All Ihren kurzlebigen IDisposable Objekten fehlt ein "using". Mit der Erweiterung ist es möglich, dass Sie etwas wie:
getan haben %Vor%Aber das schließt / schließt den Leser nicht. Wenn dies der Fall ist, fügen Sie "using" hinzu:
%Vor%Was den Leser verschließt, egal wie wir ausgehen. Kommandos, Verbindungen, Leser und Transaktionen sind alle wegwerfbar und sollten normalerweise "benutzen" verwenden.
Ich schlage vor, Sie können block verwenden, um eine ordnungsgemäße Entsorgung von sqlconnection sicherzustellen.
%Vor%Andererseits können Sie auch die MARS-Eigenschaft in Ihrer Verbindung festlegen, wenn Sie sie benötigen.
%Vor%Tags und Links c# datareader