nanu - scheint nun ja recht flott zu gehen.
Aber wieviel unnötigen Code du da produziert hast - monDieu!
Auch tritt offsichtlich ein Fehler auf - dem würde ich nachgehen, und dazu bewusst auf den TryCatch verzichten.
Hier also eine Vereinfachung, inklusive sauberer Resourcenbereinigung: Public Sub Schreibe_Tabelle(DB As String, Tabelle As String, DT As DataTable)
Dim sw = Stopwatch.StartNew
SetVorgang("schreibe Tabelle " & DT.TableName.ToString)
Using Conn As New SQLiteConnection("Data Source=" & DB & ";Version=3"), _
Cmd As New SQLiteCommand("SELECT * FROM '" & Tabelle & "'", Conn), _
myAdapter As New SQLiteDataAdapter(Cmd), _
cb As New SQLite.SQLiteCommandBuilder(myAdapter)
Conn.Open()
myAdapter.Update(DT)
End Using
Debug.Print("Sub Schreibe_Tabelle für Tabelle {0} benötigt {1}" & _
"Millisekunden", DT.TableName, sw.ElapsedMilliseconds)
End Sub Mehr Code musses nicht sein, und so ist auch jede Zeile logisch nachvollziehbar.
Dabei fällt mir auf, dass der Select vmtl. failt.
TabellenNamen werden in SQLite mit rechteckigen Klammern gequoted, die Single-Quotes dienen doch zur Identifikation von Text-Werten, falls man schlampig genug ist, keine DBParameter zu verwenden.
also probier auch Public Sub Schreibe_Tabelle(DB As String, Tabelle As String, DT As DataTable)
Dim sw = Stopwatch.StartNew
SetVorgang("schreibe Tabelle " & DT.TableName.ToString)
Using Conn As New SQLiteConnection("Data Source=" & DB & ";Version=3"), _
Cmd As New SQLiteCommand("SELECT * FROM [" & Tabelle & "]", Conn), _
myAdapter As New SQLiteDataAdapter(Cmd), _
cb As New SQLite.SQLiteCommandBuilder(myAdapter)
Conn.Open()
myAdapter.Update(DT)
End Using
Debug.Print("Sub Schreibe_Tabelle für Tabelle {0} benötigt {1}" & _
"Millisekunden", DT.TableName, sw.ElapsedMilliseconds)
End Sub Eine weitere Optimierung könnte sein, den Tabelle-Parameter rauszuwerfen, und stattdessen DT.TableName zu nehmen.
Vorrausgesetzt, der DT.TableName ist identisch mit dem Datenbank-Tabellen-Namen - was ich ja sehr empfehlen würde.
(Rechtschreibfehler urheberrechtlich geschützt)
Beitrag wurde zuletzt am 02.12.13 um 12:07:48 editiert. |