Zusammenführen von zwei SQLite-Datenbank-Dateien (C# .NET)

Ich bin mit C#/.NET mit C# - wrapper für SQLite. Ich bin versucht zum Zusammenführen von zwei SQLite Datenbanken zusammen, während ohne Duplikate.

Fand ich diese, die sich bezogen wird, von ein paar verschiedenen Fragen im forum. http://old.nabble.com/Attempting-to-merge-large-databases-td18131366.html

Ich habe versucht, die unter-Abfragen, die ich strukturiert aus dem link, den ich angegeben habe, aber Sie führen dazu, dass Ausnahmen, die Datenbanken nicht zusammengeführt werden, und die ursprüngliche Datenbank nicht geändert zu löschen.

attach 'c:\test\b.db3' as toMerge;   
insert into AuditRecords select * from toMerge.AuditRecords; 

Hier ist mein Abfrage-code.

public void importData(String fileLoc)
    {
        SQLiteTransaction trans;
        string SQL = "ATTACH '" + fileLoc + "' AS TOMERGE";
        SQLiteCommand cmd = new SQLiteCommand(SQL);
        cmd.Connection = connection;
        connection.Open();
        trans = connection.BeginTransaction();
        int retval = 0;
        try
        {
            retval = cmd.ExecuteNonQuery();
        }
        catch (Exception)
        {
            trans.Rollback();
            MessageBox.Show("An error occurred, your import was not completed.");
        }
        finally
        {
            trans.Commit();
            cmd.Dispose();
            connection.Close();
        }

        SQL = "INSERT INTO SUBCONTRACTOR SELECT * FROM TOMERGE.SUBCONTRACTOR";
        cmd = new SQLiteCommand(SQL);
        cmd.Connection = connection;
        connection.Open();
        trans = connection.BeginTransaction();
        retval = 0;
        try
        {
            retval = cmd.ExecuteNonQuery();
        }
        catch (Exception)
        {
            trans.Rollback();
            MessageBox.Show("An error occurred, your import was not completed.");
        }
        finally
        {
            trans.Commit();
            cmd.Dispose();
            connection.Close();
        }
    }

Meine Frage ist, was mache ich falsch? Und ist jeder, der sich mit der insert-Befehl? Ich bin mir nicht sicher, ob es Duplikate ausschließen, wie ich brauche.

InformationsquelleAutor CODe | 2010-12-28
Schreibe einen Kommentar