我正在使用ADO.NET連接到數據庫的C#中的項目。查詢並不複雜,但由於項目的性質,我們有兩個具有相同結構的數據庫。其中一個固定的信息可能會每年從外部來源更新一次。另一個保持相同的結構,但用於自定義用戶條目。事情是,這意味着相同的查詢會被觸發到兩個數據庫。因爲我不想重複一堆代碼,所以我想知道是否有人知道將查詢組合到兩個相同結構的數據庫並自動合併結果的相對簡單的過程。將查詢合併到ADO.NET中的兩個數據庫中
3
A
回答
1
DataAdapter.Fill(DataTable)
會將結果追加到您傳遞給它的表中。因此,假設CS1和CS2是兩個連接字符串:
DataTable dt = new DataTable();
string selectSql = "SELECT STUFF FROM SOMEWHERE";
foreach (String cs in new string[] { cs1, cs2 }) {
using (OdbcDataAdapter adp = new OdbcDataAdapter(selectSql, cs)) {
adp.Fill(dt);
}
}
第一次調用初始化DataTable
並與數據庫1的結果填充它,第二個電話從附加數據庫2
1
一種方法的數據是創建一個類來處理將查詢發送到兩個數據庫並將結果與您確定的任何規則進行合併的邏輯。下面是一個粗略的例子:
public class OverlayDatabase
{
private string masterDbConnStr;
private string userDbConnStr;
public OverlayDatabase(string masterDbConnStr, string userDbConnStr)
{
// ...
}
public DataSet ExecuteQuery(DbCommand command)
{
var dataSets = new List<DataSet>();
foreach (var connStr in new[] { masterDbConnStr, userDbConnStr })
{
// 1. Create connection
// 2. Execute command with that connection
// 3. Store dataset in dataSets
}
return MergeDataSets(dataSets);
}
private DataSet MergeDataSets(IEnumerable<DataSet> datasets)
{
// Merge logic here
}
}
相關問題
- 1. 數據庫將兩個查詢合併爲一個
- 2. 將兩個SQL查詢合併到一個查詢中
- 3. 如何組合兩個查詢並將數據合併到一行中?
- 4. 將兩個聚合查詢合併到一個視圖中
- 5. SQL - 將兩個數據庫表合併到一個數據庫表中
- 6. 將兩個SQL查詢合併到一個整潔表中
- 7. MySQL將兩個查詢合併到一個組中
- 8. 合併兩個數據庫
- 9. 將兩個表中的數據合併到一個視圖中
- 10. 從SQL Server中的兩個查詢合併數據2005
- 11. 查詢用於合併兩個表中的數據
- 12. 將兩個表與來自不同查詢的數據合併?
- 13. 將兩個查詢合併爲一個
- 14. 將兩個查詢合併成一個
- 15. 將兩個查詢合併爲一個
- 16. 將兩個查詢合併爲一個
- 17. 使用單個ado.net查詢查詢多個數據庫
- 18. 合併這兩個數據庫選擇查詢
- 19. 如何將兩個工作SELECT查詢合併到一個查詢中?
- 20. 查詢兩個數據庫
- 21. 將兩個文件的數據合併到一個列表中
- 22. 在查詢中合併兩個字段
- 23. 在PostgreSQL中合併兩個SELECT查詢
- 24. 將兩個數據庫查詢結合在一起
- 25. 將兩個SQL查詢組合到一個數組中?
- 26. 從兩個數據庫表中合併/合併字段
- 27. MySQL在同一查詢中使用兩個數據庫。不想合併表
- 28. 合併兩個MySQL查詢
- 29. 合併兩個SQL查詢
- 30. 合併兩個查詢
您需要更具體地瞭解*合併*查詢的含義。 – Jacob 2011-12-30 19:23:06
這篇文章合併數據集可能有助於http://stackoverflow.com/questions/7441188/how-to-efficiently-merge-two-datasets – bryanmac 2011-12-30 19:23:45
什麼是數據庫引擎? DB2?甲骨文? Sql Server?...另外,你的意思是不同服務器上不同實例上的兩個物理上獨立的數據庫?或者在同一臺服務器上有兩個命名數據庫對象 – 2011-12-30 19:32:06