问题描述
我正在尝试使用oledb数据提供程序将excel导入sql服务器。在我的本地计算机上,代码运行良好,但是当我在实时服务器上测试代码时,出现错误Table '_xlnm#_FilterDatabase' already exists
我在本地调试代码,找不到任何_xlnm#_FilterDatabase
。我无法理解为什么会收到此错误以及如何处理它。请帮助。
这是我的excel导入操作代码:
public ActionResult Upload(ImportExcel importExcel)
{
HospitalModel objModel = new HospitalModel();
List<HospitalsViewModel> objViewModelList = new List<HospitalsViewModel>();
//int sampleCollectionHospitalId = 0;
//int sampleTestingHospitalId = 0;
if (ModelState.IsValid)
{
string path = Server.MapPath("~/Content/Upload/" + importExcel.file.FileName);
importExcel.file.SaveAs(path);
//string excelConnectionString = @"Provider='Microsoft.ACE.OLEDB.12.0';Data Source='" + path + "';Extended Properties='Excel 12.0 Xml;IMEX=1'";
string excelConnectionString = @"Provider='Microsoft.ACE.OLEDB.12.0';Data Source='" + path + "';Mode=ReadWrite;Extended Properties='Excel 12.0 Xml;HDR=Yes'";
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
excelConnection.Open();
string tableName = excelConnection.GetSchema("Tables").Rows[0]["TABLE_NAME"].ToString();
if (tableName.ToString().Contains("FilterDatabase"))
{
tableName = excelConnection.GetSchema("Tables").Rows[0]["TABLE_NAME"].ToString();
return RedirectToAction("Add");
}
excelConnection.Close();
string sSqlCreateTable = "Create Table [" + tableName + "] ([SerialNumber] Int,[SampleId] nvarchar(100),[Name] nvarchar(100),[Age] decimal(5,2),[Sex] nvarchar(50),[Area] nvarchar(100),[Address] nvarchar(100),[MobileNumber] nvarchar(50),[State] nvarchar(50),[DateofSampleCollection] date,[DateofSampleTesting] date,[SampleCollectionHospital] nvarchar(50),[SampleTestingHospital] nvarchar(50),[Result] nvarchar(50),[DateofDischarge] date,[DateofDeceased] date)";
excelConnection.Open();
OleDbCommand cmd1 = new OleDbCommand(sSqlCreateTable,excelConnection);
cmd1.ExecuteNonQuery();
OleDbCommand cmd = new OleDbCommand("Select * from [" + tableName + "]",excelConnection);
OleDbDataReader dReader;
dReader = cmd.ExecuteReader();
SqlBulkCopy sqlBulk = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
//Give your Destination table name
sqlBulk.DestinationTableName = "PositiveCasesMaster";
//Mapping
sqlBulk.ColumnMappings.Add("SerialNumber","SerialNumber");
sqlBulk.ColumnMappings.Add("Sampleid","SampleId");
sqlBulk.ColumnMappings.Add("Name","Name");
sqlBulk.ColumnMappings.Add("Age","Age");
sqlBulk.ColumnMappings.Add("Sex","Sex");
sqlBulk.ColumnMappings.Add("Area","Area");
sqlBulk.ColumnMappings.Add("Address","Address");
sqlBulk.ColumnMappings.Add("MobileNumber","MobileNumber");
sqlBulk.ColumnMappings.Add("State","State");
sqlBulk.ColumnMappings.Add("DateofSampleCollection","DateofSampleCollection");
sqlBulk.ColumnMappings.Add("DateofSampletesting","DateofSampleTesting");
sqlBulk.ColumnMappings.Add("Samplecollectionhospital","SampleCollectionHospital");
sqlBulk.ColumnMappings.Add("Sampletestinghospital","SampleTestingHospital");
sqlBulk.ColumnMappings.Add("Result","Result");
sqlBulk.ColumnMappings.Add("DateofDischarge","DateofDischarge");
sqlBulk.ColumnMappings.Add("DateofDeceased","DateofDeceased");
sqlBulk.WriteToServer(dReader);
excelConnection.Close();
ViewBag.Result = "Successfully Imported";
}
return View();
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)