- - PR -
OLEDBでExcelを読み込めない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-27 10:47
ExcelファイルをOLEDBを使って、ASPのGridViewに表示しようとしているのですが、
どうやってもOLEDBのコネクションがOPENにならず、 「OleDbExceptionはユーザーコードによってハンドルされませんでした」 と表示されてしまい、途中で止まります。 環境の設定が悪いのか、ソースに問題があるのかよく分からないですが、 何卒、ご教授お願い致します。 ** エラーメッセージ 「OleDbExceptionはユーザーコードによってハンドルされませんでした。」 ** ソース string sConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" + "data source=C:\\ExcelData.xls;" + "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\""; OleDbConnection objConn = new OleDbConnection(sConnectionString); objConn.Open(); // この箇所でとまります。 OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM myRange1", objConn); OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); objAdapter1.SelectCommand = objCmdSelect; DataSet objDataset1 = new DataSet(); objAdapter1.Fill(objDataset1, "Sheet1"); GridView1.DataSource = objDataset1.Tables[0].DefaultView; GridView1.DataBind(); objConn.Close(); ** 環境 IDE: Visual Studio Web Developer 2005 Express Edition Web: Web Developerに内蔵されているWeb Server (IISは入れていません) | ||||
|
投稿日時: 2008-03-27 12:44
接続文字列自体の形式は間違いないと思いますが、
こちらにアクセスする権限は大丈夫でしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2008-03-27 13:05
見て頂きありがとうございます。
Excelファイルの権限については、ファイル単位で "ASPNET", "Everyone"共に「フルコントロール」を許可させておりますので 権限は大丈夫かと思います。 | ||||
|
投稿日時: 2008-03-27 15:09
追記です。
スタックトレースは下記の通り出力されます。 [OleDbException (0x800401f9): エラー メッセージはありません。結果コードは -2147220999(0x800401F9) です。] System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper) +276 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +145 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +124 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +91 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +115 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +122 System.Data.OleDb.OleDbConnection.Open() +49 _Default.Button1_Click(Object sender, EventArgs e) in c:\Documents and Settings\**********\My Documents\Visual Studio 2005\WebSites\test\ExcelCSTest\Default.aspx.cs:59 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +96 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +117 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +32 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +72 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3825 | ||||
|
投稿日時: 2008-03-27 15:43
「oledb -2147220999」でGoogleさまにお伺いを立てたところ、
ADO connection Open failure(pcreview.co.uk) ファイルへのアクセス権限がないため <- フルアクセスのため問題なし? ADO to connect to Excel Worksheet - ERROR(eggheadcafe.com) MDACが壊れているため -> How to Repair MDAC 2.8 Under Windows XP with SP2 Installed(www.macropool.com)に従ってMDACを修復してみたら?とのフォロー有り とりあえず、こんなところが目に付きました。 | ||||
|
投稿日時: 2008-03-27 16:30
かずくんさん
MDACの修復を試したところ、正常に読み込めました!! あぁ、これでやっと業務に移れます・・・ 修復方法までフォローして下さり、大変助かりました。 ありがとうございましたっ!! |
1