Объединение двух файлов базы данных SQLite (C # .NET)

Я использую C # /. NET с оболочкой C # для SQLite. Я пытаюсь объединить две базы данных SQLite вместе, исключив дубликаты.

Я нашел это, на который ссылаются несколько разных вопросов на форуме. http://old.nabble.com/Attempting-to-merge-large-databases-td18131366.html

Я попробовал следующие запросы, которые я структурировал на основе предоставленной мной ссылки, но они приводят к исключений, базы данных не объединяются вообще, и исходная база данных не изменяется вообще.

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

Вот мой код запроса.

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();
        }
    }

Мой вопрос: что я делаю не так? А кто-нибудь знаком с командой вставки? Я не уверен, что он будет исключать дубликаты по мере необходимости.

6
задан CODe 28 December 2010 в 06:18
поделиться