C# 获取表“\u xlnm\u FilterDatabase”已存在
我正在尝试使用oledb数据提供程序将excel导入sql server。在我的本地计算机上,代码运行正常,但当我在live server上测试代码时,我得到的错误表“\u xlnm\u FilterDatabase”已经存在 我在本地调试代码,没有找到任何xlnm_FilterDatabase。我无法理解为什么会出现这个错误以及如何处理它。请帮忙 以下是我的excel导入操作代码:C# 获取表“\u xlnm\u FilterDatabase”已存在,c#,excel,oledb,C#,Excel,Oledb,我正在尝试使用oledb数据提供程序将excel导入sql server。在我的本地计算机上,代码运行正常,但当我在live server上测试代码时,我得到的错误表“\u xlnm\u FilterDatabase”已经存在 我在本地调试代码,没有找到任何xlnm_FilterDatabase。我无法理解为什么会出现这个错误以及如何处理它。请帮忙 以下是我的excel导入操作代码: public ActionResult Upload(ImportExcel importExcel)
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();
}