2009-09-08 60 views
0

給定連接對象(或其中的一系列連接對象),是否有人知道回溯並獲取提供者名稱的方法?如果我有連接對象,我可以檢索提供者嗎?

我想創建一個通用數據集生成器,有人可以加載n DbCommand實例填充數據集而不需要任何進一步的信息。

理論上,作爲命令需要連接對象,這就是創建此工具所需的全部信息。

鑑於我正在填充數據集中的表,我認爲最簡單的方法是使用DataAdapter。唯一的問題是,爲了生成一個通用的DataAdapter,我似乎必須通過需要提供程序字符串的提供程序工廠 - 這是我沒有的。

此外,考慮到每個命令的提供者可能有所不同(即跨多個數據庫的命令),有沒有人有任何建議可以保持這種簡單?

我不想要求用戶提供每個命令對象的提供者字符串,如果我可以避免它。這樣用戶就可以傳遞一個DbCommand的參數數組,並且可以從那裏獲取它。

任何建議將是非常有用的。謝謝。

回答

1

還有DbConnection.DbProviderFactory屬性,它正是這樣做;唯一的問題是它是protected。請注意,這仍然意味着它是已發佈的API,因此使用反射來訪問它不應該容易發生版本破壞,儘管它需要適當的權限才能繞過可視性檢查。

+0

工程就像一個魅力 - 感謝指出我在正確的方向,我很欣賞迅速的反應! :) – BenAlabaster 2009-09-08 22:58:00

相關問題