0

aspnetmvcアプリケーションでExcel2010ファイルを操作しようとしています。

これはコードです:

string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\teste.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=YES\";";
OleDbConnection conexao = new OleDbConnection(connectionString);
conexao.Open();

Open()メソッドは、理由がわからない例外をスローします。

例外:

    Erro: System.Data.OleDb.OleDbException (0x80004005): Failure creating file.
   at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.OleDb.OleDbConnection.Open()
   at Gedi.Controllers.AdminController.File() in c:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Gedi\Gedi\Controllers\AdminController.cs:line 62
4

1 に答える 1

2

逐語的な文字列を含むファイル パスの変数を使用します。

string path = @"c:\teste.xlsx";
string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES\";");", path);

それ以外の場合は、次のようにバックスラッシュをマスクする必要があります"c:\\teste.xlsx":

于 2013-01-09T16:17:00.113 に答える