Grüße erstmal!
Ich habe ein Problem mit den Datatables in VB.
Ich habe eine Excel-Tabelle, die eingelesen werden soll und von der bestimmte Einträge verarbeitet werden sollen.
Das mit dem Einlesen in die Datatable funktioniert soweit ja ganz gut, aber jetzt habe ich Probleme die Daten zu verarbeiten.
Aber hier erstmal grob, wie ich die Daten einlese (ohne Return etc.)
Wenn ich jetzt
einbaue erhalte ich auch den gewünschten Wert.
In der Excel-Tabelle stehen nur Werte und das dazugehörige Datum, die ich als Integer-Werte gezielt abrufen und weiterverarbeiten will (ja, auch das Datum, da die Excel-Zeitrechnung die scheinbar eh als Integer abspeichert -> 01.01.2012 = 40909).
Wenn ich aber
eingebe meint er:"Der Operator = ist für Typ DBNull und Typ Integer nicht definiert"...
Was ich merkwürdig finde ist, dass sich die If-Abfrage in einer While-Schleife befindet, die er nicht bemäkelt:
Was mache ich falsch? Wie kann ich besser / ohne Fehler direkt bestimmte Felder auslesen (als Integer) um mit denen weiterzuarbeiten?
Hilfe ist natürlich sehr erwünscht.
MfG Felix
Ich habe ein Problem mit den Datatables in VB.
Ich habe eine Excel-Tabelle, die eingelesen werden soll und von der bestimmte Einträge verarbeitet werden sollen.
Das mit dem Einlesen in die Datatable funktioniert soweit ja ganz gut, aber jetzt habe ich Probleme die Daten zu verarbeiten.
Aber hier erstmal grob, wie ich die Daten einlese (ohne Return etc.)
Visual Basic:
Dim da As New OleDbDataAdapter
Dim dt As New DataTable
Dim cmd As New OleDbCommand
Dim xlsConn As OleDbConnection
Dim sPath As String = String.Empty
sPath = Me.TbDateipfad.Text 'hier ist der Pfad angegeben
xlsConn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sPath & ";Extended Properties=Excel 12.0")
Try
xlsConn.Open()
cmd.Connection = xlsConn
cmd.CommandType = CommandType.Text
cmd.CommandText = ("select * from [" & TxtbTabellenname.Text & "$]")
da.SelectCommand = cmd
da.Fill(dt)
Catch
MsgBox(ErrorToString)
Finally
xlsConn.Close()
xlsConn = Nothing
End Try
Wenn ich jetzt
Visual Basic:
MsgBox(dt.Rows(x)(y))
In der Excel-Tabelle stehen nur Werte und das dazugehörige Datum, die ich als Integer-Werte gezielt abrufen und weiterverarbeiten will (ja, auch das Datum, da die Excel-Zeitrechnung die scheinbar eh als Integer abspeichert -> 01.01.2012 = 40909).
Wenn ich aber
Visual Basic:
If dt.Rows(x)(y) = beliebigerInteger Then ... End If
Was ich merkwürdig finde ist, dass sich die If-Abfrage in einer While-Schleife befindet, die er nicht bemäkelt:
Visual Basic:
While dt.Rows(x)(y) <> beliebigerInteger ...
Was mache ich falsch? Wie kann ich besser / ohne Fehler direkt bestimmte Felder auslesen (als Integer) um mit denen weiterzuarbeiten?
Hilfe ist natürlich sehr erwünscht.
MfG Felix
Zuletzt bearbeitet: