OleDbConnection()在任何打开的Excel窗口中打开Excel文件.但如果没有一扇窗开着,就不会



我正在编写一个使用OleDbAdapter访问Excel文件中的信息的应用程序。当我尝试创建到Excel文件的连接时,如果用户在桌面上打开了另一个(不相关的)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的实例是打开的,但不会,如果没有?

你应该发布代码来初始化你的apps变量。你问题的答案很可能就在里面。它是否使用GetObject或CreateObject方法?

相关内容

  • 没有找到相关文章

最新更新