Ich versuche, die Daten aus einer Datenbank, die OleDb-Verbindung über VB.net verwendet, zu nehmen und den Datensatz zu nehmen und direkt in eine SQLite-Datenbank zu bringen. Das Problem, das ich habe, ist, dass ich die Daten aus der ersten Datenbank bekomme, aber nachdem ich den Update-Befehl gemacht habe und ich auf die SQLite-Datenbank schaue, ist sie leer mit null Datensätzen. Beide verweisen auf zwei verschiedene Datenbanken im selben Verzeichnis. Ich bekomme keine Ausnahmen, aber nichts wird in die neue SQLite-Datenbank eingefügt. Irgendwelche Vorschläge zu was könnte das verursachen?OleDB-Datenbank in SQLite-Datenbank
Dim ds As New DataSet
Dim SQL As String = "SELECT * FROM SOMETABLE"
Using conn As New OleDBConnection("Provider=Microsoft.Jet.OLEDB.4.0;Mode=Share Deny None;Data Source=Data.mdb;Jet OLEDB:Engine Type=5"
conn.Open()
Using com As New OleDbCommand(SQL, conn)
Using da As OleDBDataAdapter = New OleDBDataAdapter(conn)
da.Fill(ds, "Employees")
da.Dispose()
End Using
com.Dispose()
End Using
conn.Close()
End Using
Using conn As New SqliteConnection("Data Source=Data.db;Version=3;"
conn.Open()
Using com As New SqliteCommand(SQL, conn)
Using da As SqliteDataAdapter = New SqliteDataAdapter(conn)
Using cmdBuilder As New SQLiteCommandBuilder(da)
da.TableMappings.Add("SOMETABLE", "SOMETABLE")
da.InsertCommand = cmdBuilder.GetInsertCommand()
da.Update(ds, "SOMETABLE")
End Using
da.Dispose()
End Using
com.Dispose()
End Using
conn.Close()
End Using
Awesome Plutonix. Sie wissen zufällig, wie viel schneller dieser Ansatz verglichen wird mit dem Lesen jeder Zeile und dem Einfügen eines Befehls? Es scheint, basierend darauf, wie es nach und nach in der Datenbankgröße zunimmt, die es Zeile für Zeile anstelle einer Masseneinfügung ausführt. –
Ich bin mir nicht sicher über die Leistung, aber es gibt keine Massenbildung beteiligt. Die Magie der DA ist, dass sie alle INSERT-, DELETE- und UPDATES-Operationen ausführen kann, die für eine beliebige Anzahl von geänderten Zeilen benötigt werden, was ein wenig langsam sein kann. Das sollte anständig schnell sein, denn es wird immer nur eine Operation geben. MSDN erläutert die Reihenfolge des Prozesses – Plutonix