2011-11-22 7 views
5

私はOleDbAdapterを使用してExcelファイルの情報にアクセスするアプリケーションを作成しています。 Excelファイルへの接続を作成しようとすると、ユーザーが別の(無関係な)Excelファイルをデスクトップに開いている場合、アダプタによって接続されているファイルがこのウィンドウで読み取り専用形式で開きます。ユーザーがExcelのインスタンスを開いていない場合、ファイルは非表示のままです。ここでOleDbConnection()は、開いているExcelウィンドウでExcelファイルを開きます。しかし、ウィンドウが開いていない場合はありません

は私のコードです:Excelのインスタンスが開いていた場合は1がありませんでしたではないかどうOleDbConnection()は、ファイルを開くだろう、なぜ

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(); 

} 

誰もが知っていますか?

+0

これで運がいいですか?私はまったく同じ問題を抱えています。 – jpints14

答えて

-1

アプリを初期化するコードを投稿する必要があります。ほとんどの場合、あなたの質問に対する答えはそこにあります。 GetObjectまたはCreateObjectメソッドを使用していますか?

関連する問題