so ungefähr
durchläuft die Zeilen und gibt den Wert der Spalte "MeineSpalte" aus.
Der Wert selbst wird als Object geliefert.
Deshalb, einmal Beispiel als string (ToString),
und bei den anderen beiden wird der Rückgabetyp geprüft ob dieser Integer oder DateTime ist und entsprechend drauf reagiert.
Visual Basic:
For Each Row As DataRow In dbdt.Rows
Dim wert As Object = Row("MeineSpalte")
Dim text As String = wert.ToString()
' irgendwas machen mit dem Text
If TypeOf wert Is Integer Then
Dim zahl As Integer = CInt(wert)
' irgendwas machen mit der Zahl
End If
If TypeOf wert Is DateTime Then
Dim datum As DateTime = CType(wert, DateTime)
' irgendwas machen mit dem Datum
End If
Next
kleiner Randtipp, solltest du mal nur C# Beispiele finden
mit
Code Converter C# to VB and VB to C# – Telerik
kannst du C# Code in VB.Net konvertieren
Dein Hinweis hat mir sehr geholfen an anderer Stelle einen Fehler zu beheben
aber bei der Anzeige in der PictureBox blicke ich noch nicht durch
Hier mal den Code habe ihn soweit wie Möglich Dokumentiert
If String.IsNullOrEmpty(TextBox1.Text) Then
' Variablen für die PictureBox.
Dim g As Graphics = e.Graphics
'der erste horizontale Abstand
Dim horizontal = 20
'Daten holen und Verarbeiten
dbdt = New DataTable
Try
Sql = "SELECT BuchungsNr, Kunde, Fahrzeugnummer, Modell, Mietbegin, YEAR(Mietbegin) AS JahrStart, MONTH(Mietbegin) AS MonatStart, DAY(Mietbegin) AS TagStart, Mietdauer, Mietende, TOTAL FROM tblreservierung where KFZ_ABGEGEBEN='nein' ORDER BY Mietbegin ASC"
conn.Open()
With dbcmd
.CommandText = Sql
.Connection = conn
End With
dbda.SelectCommand = dbcmd
dbda.Fill(dbdt)
bindingSourceVermietung1.DataSource = dbdt
DataGridView7.DataSource = bindingSourceVermietung1
dbda.Fill(ds, "tblreservierung")
Dim DbReader As OleDbDataReader
DbReader = dbcmd.ExecuteReader
While DbReader.Read
'Der Mietbegin
Dim Mietbegin = Me.DataGridView7.CurrentRow.Cells(4).Value 'Datum komplett
'Das Jahr zur Auswahl über eine TextBox
Dim JahrStart = Me.DataGridView7.CurrentRow.Cells(5).Value 'Jahr
Dim JahrStartD = Convert.ToDecimal(JahrStart) 'Jahr als Decimal
'Der Mietbegin Monat und Tag als Zahl 0518
Dim MonatStart = Me.DataGridView7.CurrentRow.Cells(6).Value 'Monat
Dim MonatStartD = Convert.ToDecimal(MonatStart) 'Monat als Decimal
Dim TagStart = Me.DataGridView7.CurrentRow.Cells(7).Value 'Tag
Dim TagStartD = Convert.ToDecimal(TagStart) 'Tag als Decimal
'Der Startpunkt
Dim StartDatum = ((((MonatStartD * 100) + TagStartD) + 200)) 'zusammengefasst als 0912 + 200 Abstand für die Fahrzeugnummer
'Die Mietdauer
Dim Mietdauer = Me.DataGridView7.CurrentRow.Cells(8).Value 'Mietdauer in Tagen
Dim MietdauerD = Convert.ToDecimal(Mietdauer) 'Mietdauer in Tagen als Decimal
'Das Mietende
Dim Mietende = Me.DataGridView7.CurrentRow.Cells(9).Value 'Datum komplett
Dim EndZeitpunkt = (StartDatum + (MietdauerD * 75)) 'zusammengefasst als 0912 * 75 um den Balken zu vergrößern
'Fahrzeugnummer
Dim Fahrzeug = Me.DataGridView7.CurrentRow.Cells(2).Value
Dim Zeitleiste As New List(Of String) ' Liste für die Zeiten
Dim ZeitIndex = 1 'Index für die Zeiten
'Zeilen Trennung
Dim x As Integer
For x = 40 To 2000 Step 50
g.DrawLine(New Pen(System.Drawing.Color.Black, 1), PictureBox1.Left, x, PictureBox1.Right, x)
Next
'Umsatz Anzeige
Dim TotalMoto = 0
Dim TotalSales = 0
' Zeiten pro Fahrzeug
For Each Row As DataRow In dbdt.Rows
Dim Zeit As Date = CDate(Row.Item("Mietende").ToString)
If Date.Compare(Zeit, Today) < 0 Then
Zeitleiste.Add(Row.Item("Mietbegin"))
End If
ZeitIndex += 1
'Umsatz Anzeige
TotalSales += Val(Row.Item("TOTAL"))
Next
Label15.Text = TotalSales
' Grafik Ausgabe in der PictureBox
If Not Zeitleiste.Count.Equals(0) Then
g.DrawString(Mietbegin + " / " + Mietende, fnt2, Brushes.Black, New Point(StartDatum, (horizontal - 20)))
g.DrawLine(New Pen(System.Drawing.Color.DarkRed, 10), StartDatum, horizontal, EndZeitpunkt, horizontal)
g.DrawString("FzgNr: " + Fahrzeug, fnt, Brushes.Black, New Point(2, (horizontal - 15)))
End If
End While
Catch ex As Exception
MsgBox(ex.Message)
Finally
conn.Close()
End Try