ich muss ganz ehrlich gestehen, dass ich ihn noch nicht ganz verstehe. Leiter finde ich auch nicht sehr viele Erklärungen.
Dein Beispiel Funktioniert zwar, doch ich würde gerne die Spalten direkt ansprechen.
Wenn ich in der while Schleife noch eine Abfrage einfüge dann bekomme ich auch einen Fehler: invalidOperationExcpetion wurde nicht behandelt
"Keine Daten für die Zeile/Spalte."
was mache ich Falsch?
Daten_suchen1()
Dim Prov As String
Dim SQL As String, SQL1 As String
'Dim i As Integer
'Dim ks As Double
Dim Jahr As Integer
Dim ID As Long
Dim intNumError As Integer
Dim leer As String = "-"
'Try
If lvÜbersicht.Items.Count > 0 Then
lvÜbersicht.Items.Clear()
lvÜbersicht.Columns.Clear()
End If
Jahr = Format(Now(), "yyyy")
Prov = _
Global.WindowsApplication1.My.MySettings.Default.DatDBConnectionString
SQL = "SELECT Verbraucher.Bezeichnung as Bez, Verbraucher.Bezugsgröße" & _
"as gr, Verbraucher.Einheit as e, Verbraucher.ID FROM Verbraucher;"
Dim conn = New OleDbConnection(Prov)
Dim cmd As New OleDbCommand(SQL, conn)
Dim dr As OleDb.OleDbDataReader
conn.Open()
dr = cmd.ExecuteReader
lvÜbersicht.View = View.Details
lvÜbersicht.Columns.Add("Verbraucher", 100, HorizontalAlignment.Left) _
'spalte 1
lvÜbersicht.Columns.Add("Kostensatz", 100, HorizontalAlignment.Left) _
'2
lvÜbersicht.Columns.Add("Verbrauch summiert", 150, _
HorizontalAlignment.Left) '3
lvÜbersicht.Columns.Add("Kosten summiert", 150, _
HorizontalAlignment.Left) '4
'lvÜbersicht.Columns.Add("", 20, HorizontalAlignment.Left)
' '5
lvÜbersicht.Columns.Add("lezte Eingabe am", 150, _
HorizontalAlignment.Left) '6
lvÜbersicht.Columns.Add("für Zeitraum", 150, HorizontalAlignment.Left) _
'7
lvÜbersicht.Columns.Add("letzte Werte ", 150, HorizontalAlignment.Left) _
'8
If dr.HasRows = True Then
lvÜbersicht.BeginUpdate()
Dim i As Integer = 0
With lvÜbersicht
Do While dr.Read()
.Items.Add(Trim(dr.Item("bez").ToString()))
ID = CLng(dr.Item("id"))
SQL1 = "SELECT KostenSätze.KostenSatz as ks FROM(" & _
"KostenSätze) WHERE (((KostenSätze.Verbraucher_ID)= " & _
ID & "));"
Dim conn1 = New OleDbConnection(Prov)
Dim cmd1 As New OleDbCommand(SQL1, conn1)
Dim dr1 As OleDb.OleDbDataReader
conn1.Open()
dr1 = cmd1.ExecuteReader()
If dr1.HasRows = True Then
.Items(CInt(i)).SubItems.Add(dr1.Item("ks").ToString() _
& "/" & dr.Item("gr").ToString() & dr.Item( _
"e").ToString()) ' Hier kommt der Fehler
Else
.Items(CInt(i)).SubItems.Add(("- €").ToString())
End If
dr1.Close()
conn1.Close()
i += 1
Loop
End With
lvÜbersicht.EndUpdate()
dr.Close()
conn.Close()
Else
dr.Close()
conn.Close()
End If
'Catch Exp As Exception
'intNumError = Err.Number()
'MsgBox("[ " & CStr(intNumError) + " ] " + Err.Description,
' MsgBoxStyle.Critical, " (Program Error)")
'End Try
End Sub Wer aufhört sich zu verbessern, hört auf gut zu sein. |