获取表'_xlnm#_FilterDatabase'已经存在

问题描述

我正在尝试使用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 (将#修改为@)