访问不同的数据源

时间:2014-03-25 11:25:30

标签: c# sql import odbc

在我的数据导入应用程序中,我希望允许用户从尽可能多的不同数据源导入数据。

那么最好的方法是什么?能够连接到不同数据源然后通过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");

目前我正在使用Microsoft连接对话框(http://archive.msdn.microsoft.com/Connection)作为第一部分。但我无法弄清楚如何使用它返回的连接字符串。 OdbcConnection不接受它(仅使用对话框生成的Micrsosoft SQL连接字符串进行测试)。是否有可能实现上述目标,或者我将被迫在第二部分使用不同的类别?

编辑:我还希望用户能够为数据源安装自己的驱动程序。我只是不知道ODBC或OleDB或其他任何东西是否可行,以及是否/如何使用连接对话框。

1 个答案:

答案 0 :(得分: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。)