Hallo Leute,
ich habe hier grad ein kleines Problem bei dem ich nicht weiterkomme...
Sub OpenDatabase()
Try
If Not gConnection Is Nothing Then gConnection.Close()
Dim connStr As String = String.Format("server={0};user id={1};" & _
"password={2}; database={3}; port={4}; pooling=false", DB.IP, _
DB.User, DB.Passwort, DB.Datenbank, DB.Port)
gConnection = New MySqlConnection(connStr)
gConnection.Open()
Catch ex As MySqlException
MsgBox(ex.Message, , "OpenDatabase")
End Try
End Sub
Function Get_Kunden2Listview(ByVal ListView As ListView) As Boolean
Dim reader As MySqlDataReader
reader = Nothing
'Call OpenDatabase()
Dim cmd As New MySqlCommand("SELECT user.ID, user.VC_VORNAME," & _
"user.VC_NACHNAME FROM user ORDER BY user.ID;", gConnection)
Try
reader = cmd.ExecuteReader()
ListView.Items.Clear()
While (reader.Read())
With ListView.Items.Add(reader.GetString(0))
.SubItems.Add(reader.GetString(1))
.SubItems.Add(reader.GetString(2))
.SubItems.Add(Get_Lieferungen(0, reader.GetString(0))) _
'DANACH KRACHT ES!!!
End With
End While
If ListView.Items.Count > 0 Then
Return True
Else
Return False
End If
reader.Close()
'cmd.Connection.Close()
Catch ex As MySqlException
MsgBox(ex.Message, , "Get_Kontakts2Listview")
End Try
End Function
Function Get_Lieferungen(ByVal Welche As Integer, ByVal ID As String)
Dim reader As MySqlDataReader, sSQL As String, Count As Integer
reader = Nothing
'Call OpenDatabase()
Select Case Welche
Case 0 'Offene
sSQL = "SELECT user.VC_VORNAME, user.VC_NACHNAME FROM" & _
"reserviert INNER JOIN user ON reserviert.I_USERID = user.ID" & _
"WHERE reserviert.I_ABGESCHLOSEN=0 AND user.ID=" & ID & ";"
Case 1 'Abgeschlossene
sSQL = "SELECT user.VC_VORNAME, user.VC_NACHNAME FROM" & _
"reserviert INNER JOIN user ON reserviert.I_USERID = user.ID" & _
"WHERE reserviert.I_ABGESCHLOSEN=1 AND user.ID=" & ID & ";"
End Select
Dim cmd As New MySqlCommand(sSQL, gConnection)
Try
reader = cmd.ExecuteReader()
Count = 0
While (reader.Read())
Count = reader.FieldCount
End While
reader.Close()
'cmd.Connection.Close()
Catch ex As MySqlException
MsgBox(ex.Message, , "Get_Lieferungen")
End Try
Return Count
End Function Mit den auskommentierten Zeilen funktioniert alles Einwandfrei. Nun habe ich in einer solchen Funktion einen Aufruf der wiederum eine andere Funktion mit gleichem Aufbau aufruft, sprich er würde die Verbindung schließen und somit würde die Übergeordnete Funktion keine Verbindung mehr haben.
Bisher hat das gut funktioniert das ich die Verbindung geschlossen hab und in der Funktion neu aufgebaut hab. Allerdings war das auch nur das eigentlichen Problem umgangen.
Wie muss ich das Strukturieren das er das Readerobjekt schliest? |