Hallo liebe Community
Ich hab ein Problem beim updaten einer Datenbank. Ein ähnliches Thema hatte ich schon mal eröffnet, hab nun aber auf csv umgestellt und bekomme einen anderen Fehler
(Altes Thema: Installierbares ISAM nicht gefunden - Excel 2013)
Das soll das Programm machen:
Bei
Aber wo ist der Fehler? Vielleicht kann mir jemand ja einen Tipp geben...
Danke schonmal
Dominik
Ich hab ein Problem beim updaten einer Datenbank. Ein ähnliches Thema hatte ich schon mal eröffnet, hab nun aber auf csv umgestellt und bekomme einen anderen Fehler
(Altes Thema: Installierbares ISAM nicht gefunden - Excel 2013)
Das soll das Programm machen:
- Eine CSV-Datei in ein Datatable laden -> funktioniert
- Dem Datatable an erster Position eine neue Spalte ("ID") hinzufügen -> funktioniert
- Die Spalte ID zum Primärschlüssel machen -> funktioniert
- Doppelte Einträge aus dem Datatable entfernen -> funktioniert
- Inhalt der Datenbanktabelle löschen -> funktioniert
- Datatable in leere Datenbanktabelle updaten -> funktioniert nicht
VB.NET-Quellcode
- Dim DT As DataTable
- Dim i As Integer = 0
- Dim Connect_csvdatei As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & pfad_temp & ";Extended Properties='text;HDR=Yes;FMT=Delimited;';")
- Dim Command_csvdatei As New OleDb.OleDbCommand("SELECT * FROM de_pvu_vnwbestand.csv order by Betrieb, Aktnummer", Connect_csvdatei)
- Dim DataAdapter_csvdatei As New OleDb.OleDbDataAdapter
- l_fortschritt.Text = "Verbindung zur CSV aufbauen..."
- Me.Update()
- Connect_csvdatei.Open()
- DataAdapter_csvdatei.SelectCommand = Command_csvdatei
- DataAdapter_csvdatei.Fill(DS)
- l_fortschritt.Text = "Daten in DataSet laden..."
- Me.Update()
- DT = DS.Tables(0)
- DT.Columns.Add("ID").SetOrdinal(0)
- For Each row As DataRow In DT.Rows
- If aktnummer = row.Item(1) And Betrieb = row.Item(14) Then
- row.Delete()
- Else
- i = i + 1
- row.Item(0) = i
- aktnummer = row.Item(1)
- Betrieb = row.Item(14)
- End If
- Next
- DT.PrimaryKey = New DataColumn() {DT.Columns("ID")}
- dgv.DataSource = DT
- Me.Update()
- Dim Connect_nwbestand As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""Y:\EDV\Allgemein\VaudisNT\CROSS.accdb""")
- Dim adapter_nwbestand As New OleDb.OleDbDataAdapter("select * FROM [NW Bestand Test]", Connect_nwbestand)
- Connect_nwbestand.Open()
- Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter_nwbestand)
- adapter_nwbestand.Update(DT)
- Connect_nwbestand.Close()
- Connect_csvdatei.Close()
- l_fortschritt.Text = "Importieren abgeschlossen..."
- MessageBox.Show("Gesamt: " & dgv.RowCount)
Bei
adapter_nwbestand.Update(DT)
(Zeile 33) bricht das Programm mit der Meldung Syntaxfehler in UPDATE-Anweisung
ab.Aber wo ist der Fehler? Vielleicht kann mir jemand ja einen Tipp geben...
Danke schonmal
Dominik