Forums Neueste Beiträge
 

Problem mit Using

18/10/2009 - 14:25 von Thomas Kehl | Report spam
Hallo.
Ich habe folgenden Code in einer Klasse:

Private connection As SqlConnection
Public Sub Sync()
Dim connectionString As String "Server=xxx;Database=yyy;Trusted_Connection=True;"

Using connection = New SqlConnection(connectionString)
Dim docs As List(Of Document) = LoadDocuments()
...
...
End Using
End Sub

Private Function LoadDocuments() As List(Of Document)
Dim docs As New List(Of Document)

Dim dtShadowDocs As DataTable = LoadSQL("select * from
ShadowDocs")
For Each row As DataRow In dtShadowDocs.Rows
docs.Add(New Document(row))
Next

Return docs
End Function

Private Function LoadSQL(ByVal sql As String)
Dim adapter As New SqlDataAdapter(sql, connection)
Dim ds As DataSet
ds = New DataSet()
adapter.Fill(ds)
If ds.Tables.Count > 0 Then
Return ds.Tables(0)
Else
Return Nothing
End If
End Function

Das Problem ist, dass in der Function LoadSQL() das connection-Objekt
Nothing ist. Meine Frage ist nun, wie kriege ich es hin, dass ich ein
Connection-Object mit Using erstellen kann, damit es sicher wieder
korrekt abgebaut wird und dieses dann in verschachtelten Methoden
verwenden kann, ohne das Objekt jedesmal per Parameter übergeben zu
müssen?
Vielen Dank für eure Hilfe.

Herzliche Grüsse
Thomas Kehl
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
18/10/2009 - 14:44 | Warnen spam
Thomas Kehl schrieb:
Hallo.
Ich habe folgenden Code in einer Klasse:

Private connection As SqlConnection
Public Sub Sync()
Dim connectionString As String > "Server=xxx;Database=yyy;Trusted_Connection=True;"

Using connection = New SqlConnection(connectionString)



\\\
connection = New SqlConnection(...)
Using connection
///

Das Problem ist, dass in der Function LoadSQL() das connection-Objekt
Nothing ist. Meine Frage ist nun, wie kriege ich es hin, dass ich ein
Connection-Object mit Using erstellen kann, damit es sicher wieder
korrekt abgebaut wird und dieses dann in verschachtelten Methoden
verwenden kann, ohne das Objekt jedesmal per Parameter übergeben zu
müssen?



Ich würde die Variante mit den Parametern vorziehen.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen