Estoy usando C# /. NET con el contenedor C# para SQLite. Estoy intentando fusionar dos bases de datos SQLite al tiempo que excluyo los duplicados.Fusionando dos archivos de base de datos SQLite (C# .NET)
Encontré esto, que se hace referencia a partir de algunas preguntas de foro diferentes. http://old.nabble.com/Attempting-to-merge-large-databases-td18131366.html
He intentado las siguientes consultas, que he estructurado a partir del enlace que proporcioné, pero dan como resultado excepciones, las bases de datos no se fusionan y la base de datos original no se modifica en absoluto.
attach 'c:\test\b.db3' as toMerge;
insert into AuditRecords select * from toMerge.AuditRecords;
Aquí está mi código de consulta.
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();
}
}
Mi pregunta es, ¿qué estoy haciendo mal? ¿Y alguien está familiarizado con el comando Insertar? No estoy seguro si excluirá duplicados cuando lo necesite.
Gran! Eso funcionó, pero no elimina los duplicados. ¿Tienes algún consejo sobre cómo manejar eso? ¿Hay otro comando que pueda usar además de insertar? De nuevo, gracias por tu ayuda. – CODe
para evitar duplicados, puede comparar dos tablas como. {SQL = "INSERT INTO SUBCONTRACTOR SELECT * FROM TOMERGE.SUBCONTRACTOR WHERE [YOUR_UNIQUE_ID] NOT IN (SELECCIONE [YOUR_UNIQUE_ID] FROM SUBCONTRACTOR)} – Binil