我试图与下面的字符串连接,但它给出了一个编译错误。奇怪的是,它在一台机器上工作正常,但在另一台机器上抛出错误!!下面是我的代码和我的错误,谁能指出我应该改变的地方:
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?
看起来你的代码引用了microsoft . office . interop . excel . oledbconnection接口,而你可能想要System.Data.OleDb.OleDbConnection接口。
excel互操作界面只会在需要的组件可用的机器上正确构建(如果安装了excel可能会这样),而System.Data.OleDb
接口是。net框架的一部分,因此将在所有安装了。net框架的机器上工作。
如果您确实打算使用excel互操作接口,那么将所需的互操作程序集添加到与源一起的某种"lib"目录并从那里引用它将是一个好主意。参见编译在TFS中包含Microsoft Excel的构建