2011-11-22 18 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方法嗎?

相關問題