2011-11-22 25 views
5

我正在编写一个应用程序,它使用OleDbAdapter来访问Excel文件中的信息。如果用户在桌面上打开另一个(不相关的)Excel文件,则尝试创建与Excel文件的连接时,适配器连接的文件将以只读格式在此窗口中打开。如果用户没有打开Excel实例,则文件保持隐藏状态。OleDbConnection()在任何打开的Excel窗口中打开一个Excel文件。但是,如果不存在打开的窗口

这里是我的代码:

foreach (item app in apps) 

{ 

    DataTable dt = new DataTable(); 

    string CnStr = ("Provider=Microsoft.Jet.OLEDB.4.0;" + ("Data Source=" 
        + ((app.FilePath) + (";" + "Extended Properties=\"Excel 8.0;\"")))); 

    string OleDbString = ("Select * from [" + app.SheetName + "$]");        

    OleDbDataAdapter Adapter = new OleDbDataAdapter(); 

    var conn = new OleDbConnection(CnStr); 
    conn.Open(); <----------------------------This is where the files are being opened. 

    var cmd = new OleDbCommand(OleDbString, conn); 

    Adapter.SelectCommand = cmd; 


    Adapter.Fill(app.DataTable); 

    conn.Close(); 

    Adapter.Dispose(); 

} 

有谁知道为什么会OleDbConnection()打开一个文件,如果一个Excel的实例是开放的,但不会如果不是?

+0

有没有这样的运气?我有完全相同的问题。 – jpints14

回答

-1

您应该发布代码以初始化您的应用程序变量。很可能你的问题的答案就在那里。 它使用GetObject或CreateObject方法吗?

相关问题