C# 如何将同一Excel文件导入SQL Server
我创建了一个asp.NETMVC4应用程序,并将其部署到web上 在这个应用程序中,我有一个控制器将一些Excel文件导入数据库 在本地主机上工作正常,但在服务器上,当我尝试导入与现有文件同名的文件时,会出现错误 (我看不到异常,我只看到一些好消息(catch…) 这是代码的一部分:C# 如何将同一Excel文件导入SQL Server,c#,asp.net-mvc,visual-studio-2010,C#,Asp.net Mvc,Visual Studio 2010,我创建了一个asp.NETMVC4应用程序,并将其部署到web上 在这个应用程序中,我有一个控制器将一些Excel文件导入数据库 在本地主机上工作正常,但在服务器上,当我尝试导入与现有文件同名的文件时,会出现错误 (我看不到异常,我只看到一些好消息(catch…) 这是代码的一部分: if (Request.Files["file"].ContentLength > 0) { string fileExtension = System.IO.Path.GetExtension(Re
if (Request.Files["file"].ContentLength > 0)
{
string fileExtension = System.IO.Path.GetExtension(Request.Files["file"].FileName);
if (fileExtension == ".xls" || fileExtension == ".xlsx")
{
string fileLocation = Server.MapPath("~/Content/") + Request.Files["file"].FileName;
if (System.IO.File.Exists(fileLocation))
{
System.IO.File.Delete(fileLocation);
}
Request.Files["file"].SaveAs(fileLocation);
string excelConnectionString = string.Empty;
excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
//connection String for xls file format.
if (fileExtension == ".xls")
{
excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
}
//connection String for xlsx file format.
else if (fileExtension == ".xlsx")
{
excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
}
//Create Connection to Excel work book and add oledb namespace
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
excelConnection.Open();
DataTable dt = new DataTable();
dt = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
if (dt == null)
{
return null;
}
String[] excelSheets = new String[dt.Rows.Count];
int t = 0;
//excel data saves in temp file here.
foreach (DataRow row in dt.Rows)
{
excelSheets[t] = row["TABLE_NAME"].ToString();
t++;
}
OleDbConnection excelConnection1 = new OleDbConnection(excelConnectionString);
string query = string.Format("Select * from [{0}]", excelSheets[0]);
using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, excelConnection1))
{
dataAdapter.Fill(ds);
}
excelConnection.Close();
}
if (fileExtension.ToString().ToLower().Equals(".xml"))
{
string fileLocation = Server.MapPath("~/Content/") + Request.Files["FileUpload"].FileName;
if (System.IO.File.Exists(fileLocation))
{
System.IO.File.Delete(fileLocation);
}
Request.Files["FileUpload"].SaveAs(fileLocation);
XmlTextReader xmlreader = new XmlTextReader(fileLocation);
ds.ReadXml(xmlreader);
xmlreader.Close();
}
}
我的回答不知道具体的异常(如您所述,您自己无法看到异常)。在我类似的经历中,我遇到了相同的问题,并通过在服务器上安装Microsoft ACE OLEDB 12.0驱动程序解决了此问题。我安装了以下组件来解决此问题: 2007办公系统驱动程序-数据连接组件:
如果这样做没有帮助,更多关于您看到的异常的信息将有助于解决问题。我想您我会回电告诉您这是否有效,但我认为这是最好的答案!!