2014-01-17 52 views
0

我有超过400个sqlite数据库。我需要查询这些数据库。像简单的SELECT.....查询来获得结果。C#中的多个sqlite数据库执行查询#

我不知道天气在单个查询中是可能的。

当前的逻辑是。

foreach(FileInfo finf in Files) 
{ 
    // query one database get result 
    Datatable results = execute(); 
    // merge Datatable with new one. 
} 

最后我们得到所有数据库结果在单个数据表中。

有没有人有更好的解决方案来查询多个数据库?

在此先感谢。

+0

你有GOOGLE了它? – SMK

+1

是的,我尝试过,但最大的结果与附加数据库有关。这对我来说很不方便。它与当前逻辑相同 – Pratik

+0

你的解决方案不错,但关闭未使用的SqLiteConnection(s) – houssam

回答

1

为了使用SQLite获得单个结果集,您必须通过ATTACH command为每个数据库加入一个不同的别名,然后构建一条sql语句,将数据分组为SELECT ... UNION command的单个结果集。

例如:

- ATTACH DATABASE 'Database1' As 'DB1'; 
- ATTACH DATABASE 'Database2' As 'DB2'; 

然后:

SELECT * FROM DB1.MyTable 

UNION 

SELECT * FROM DB2.MyTable 
+0

我有超过400个数据库。 sqlite附加数据库的最大限制为62. http://www.sqlite.org/limits.html – Pratik

+0

按组og 62查询并将结果合并到DataTable对象中。 –