private List<test> UploadExcel(HttpPostedFileBase FileUpload)
{
List<test> list = new List<test>();
string file = "";
file= FileUpload.FileName;
string result = string.Empty;
string strConn =@"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + file + "; " + "Extended Properties='Excel 8.0;HDR=No'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "[Sheet1$]");
for (int i = 1; i < myDataSet.Tables["[Sheet1$]"].Rows.Count; i++)
{
test it = new test();
it.test1 = myDataSet.Tables["[Sheet1$]"].Rows[i][0].ToString();
it.test2 = myDataSet.Tables["[Sheet1$]"].Rows[i][1].ToString();
list.Add(it);
}
result = "导入成功!";
JsonResult json = new JsonResult();
json.Data = result;
myCommand.Dispose();
KillExcelProceed();
conn.Close();
return list;
}
这是我的导入的controller,在本机测试都能成功而且list的数据能在view里面显示出来,但是一发布到服务器后,上传了excel就提示不行了,是不是我写的controller有误
{
List<test> list = new List<test>();
string file = "";
file= FileUpload.FileName;
string result = string.Empty;
string strConn =@"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + file + "; " + "Extended Properties='Excel 8.0;HDR=No'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet, "[Sheet1$]");
for (int i = 1; i < myDataSet.Tables["[Sheet1$]"].Rows.Count; i++)
{
test it = new test();
it.test1 = myDataSet.Tables["[Sheet1$]"].Rows[i][0].ToString();
it.test2 = myDataSet.Tables["[Sheet1$]"].Rows[i][1].ToString();
list.Add(it);
}
result = "导入成功!";
JsonResult json = new JsonResult();
json.Data = result;
myCommand.Dispose();
KillExcelProceed();
conn.Close();
return list;
}
这是我的导入的controller,在本机测试都能成功而且list的数据能在view里面显示出来,但是一发布到服务器后,上传了excel就提示不行了,是不是我写的controller有误
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +351
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +86
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +31
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +76
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +126
System.Data.OleDb.OleDbConnection.Open() +43
DepTrain.Controllers.DepTrainUploadController.UploadExcel(HttpPostedFileBase FileUpload) in D:\PersonTrain20120220\DepTrain\DepTrain\Controllers\DepTrainUploadController.cs:3380
DepTrain.Controllers.DepTrainUploadController.TestExcel(HttpPostedFileBase FileUpload) in D:\PersonTrain20120220\DepTrain\DepTrain\Controllers\DepTrainUploadController.cs:3345
lambda_method(Closure , ControllerBase , Object[] ) +108
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +199
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +56
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +267
System.Web.Mvc.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c() +20
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +190
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +345
System.Web.Mvc.Controller.ExecuteCore() +115
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +42
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +34
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +43
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8970301
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
已下载安装,并查看了temp和IIS里面的权限,并把控制面板里面文件夹选项的设置改动了,现运行报下面的错误
异常详细信息: System.Data.OleDb.OleDbException: 找不到可安装的 ISAM。源错误:
行 3383: OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn);
行 3384: DataSet myDataSet = new DataSet();
行 3385: myCommand.Fill(myDataSet, "[Sheet1$]");