2014-03-25 43 views
2

在我的數據導入應用程序中,我希望允許用戶從儘可能多的不同數據源導入數據。訪問不同的數據源

那麼什麼是最好的方法和什麼類需要能夠連接到不同的數據源,然後通過SQL查詢從他們獲取數據?

E.g.

// 1. A class I need to allow the user to select the needed data source 
ConnectionDialog dlg = new ConnectionDialog(); 
dlg.ShowDialog(); 

// 2. A class I need to access the data source using the connection string built above 
DataConnection con = new DataConnection(dlg.builtConnectionString); 
con.doStuff("SELECT * FROM test"); 

目前我使用的第一部分微軟連接對話框(http://archive.msdn.microsoft.com/Connection)。但我無法弄清楚如何使用它返回的連接字符串。一個OdbcConnection不會接受它(僅用對話框生成的Micrsoft SQL連接字符串進行測試)。是否有可能實現上述目標,或者是否會被迫爲第二部分使用不同的類?

編輯:我也希望用戶能夠安裝自己的數據源驅動程序。我只是不知道是否要使用ODBC或OleDB或其他方法,以及如何/如何使用連接對話框。

回答

0

使用環繞數據庫源列表。使用{{name}}字符串爲每種類型的數據庫連接(MSSQL,MYSQL和Oracle)添加一個連接字符串到web.config,然後將該字符串替換爲用戶選擇的目錄。

<connectionStrings> 

    <add name="mssql" connectionString="Data Source=.;Initial Catalog={{name}};Integrated Security=True" /> 
    <add name="mysql" connectionString="server=localhost;user id=root; password=PASS;database={{name}};pooling=false" /> 
    <add name="oracle" providerName="Oracle.DataAccess.Client" connectionString="Data Source={{name}};User Id=root;Password=PASS;" /> 

    </connectionStrings> 

現在使用SqlConnection和MySqlConnection和OracleConnection類。 (你將需要mysqlconnector和oracleconnector這些類)。

+0

我希望用戶能夠安裝自己的驅動程序(如ODBC)。另外我會需要第二部分的多個類。 – user2743434