使用OleDbConnection时出错

时间:2014-03-27 13:53:00

标签: c# oledbconnection

我正在尝试连接下面的字符串,但它会产生编译错误。奇怪的是,它在一台机器上工作正常,但在另一台机器上抛出错误!下面是我的代码和我的错误,有人可以指出我应该改变的内容:

database = "\\\\Mithril\\Databases\\Master.mdb";
System.Collections.Hashtable lookup = new System.Collections.Hashtable();
//This is the error line
OLEDBConnection olecon = new OLEDBConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + database.ToString());

这是我得到的编译错误:

Error 2 Cannot create an instance of the abstract class or 
interface 'Microsoft.Office.Interop.Excel.OLEDBConnection'  

编辑--------------------

我也尝试过:

using System.Data;
System.Data.OleDb.OLEDBConnection olecon = new System.Data.OleDb.OLEDBConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + database.ToString());

这会产生不同的编译错误:

Error 19 The type or namespace name 'OLEDBConnection' does not exist in the 
namespace 'System.Data.OleDb' (are you missing an assembly reference?

1 个答案:

答案 0 :(得分:3)

看起来您的代码引用了Microsoft.Office.Interop.Excel.OLEDBConnection接口,您可能希望使用System.Data.OleDb.OleDbConnection接口。

excel互操作接口只能在所需程序集可用的计算机上正确构建(如果安装了Excel,可能就是这样),而System.Data.OleDb接口是.Net框架的一部分,因此可以工作在所有安装.Net框架的机器上。

如果您打算使用excel互操作接口,那么最好将所需的互操作程序集添加到源旁边的某个“lib”目录中,并从那里引用它。见Compiling builds that have Microsoft Excel in TFS