繁体   English   中英

将Excel工作表数据存储到SQL Server

[英]Store Excel Sheet data to sql server

我收到类似的错误消息

初始化字符串的格式不符合从索引0开始的规范。

导出Excel文件时。 请指教

这是我的代码:

string file = string.Format("{0}\\{1}", Request.PhysicalApplicationPath,Guid.NewGuid().ToString().Replace("-",string.Empty));
fileuploadExcel.SaveAs(file);

//Create connection string to Excel work book
string excelConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HRD=YES;IMEX=1'", fileuploadExcel.PostedFile.FileName);

//Create Connection to Excel work book
OleDbConnection excelConnection =new OleDbConnection(file);

//Create OleDbCommand to fetch data from Excel
OleDbCommand cmd = new OleDbCommand("Select [ID],[Name],[Desi] from [Varun]", excelConnection);
excelConnection.Open();
OleDbDataReader dReader;
dReader = cmd.ExecuteReader();
SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection);

//Give your Destination table name
sqlBulk.DestinationTableName = "Excel_table";
sqlBulk.WriteToServer(dReader);
excelConnection.Close();

好吧,我看到一件事很容易解决...尝试更改:

SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection);

成为:

SqlBulkCopy sqlBulk = new SqlBulkCopy(excelConnection);


万一您仍然有问题...一般要点:

  1. 在Google上搜索错误消息时的诀窍:将搜索字符串用引号引起来。 当我搜索"Format of the initialization string does not conform to specification starting at index 0" (对QUOTES至关重要)时,我发现了很多示例,所有示例都说:
  2. 连接字符串有问题。

当然,请告诉我们对excelConnection的更改是否有帮助...是否还有其他问题...并且如果最终代码有很大不同,请将该最终代码添加到问题的底部,作为“更新: “

另外两个问题:
(A)您正在使用哪个版本的SQL Server(通常会有所帮助)?
(B)您是否考虑过先将Excel电子表格导入SQL Server,然后作为表格访问它? 在Management Studio(或企业管理器)中,如果右键单击数据库名称,然后转到“任务”,您将看到一个导入数据的选项。 在SQL Server 2005或更高版本中,该向导使用SSIS。 在SQL Server 2000中,该向导使用DTS。

如果您打算一次性导入,那么这些向导将是一种更简单的方法。

考虑到此导入将被重新使用,以用于随时间更新的电子表格...我仍然会考虑首先导入到SQL Server,因为如果您要谈论的是由人更新的Excel电子表格,您很有可能会遇到格式可预测性的问题:人类是否以特定(不同)格式粘贴了某些单元格? (这可能会导致NULL /空数据……尤其是使用SSIS时-DTS更为宽容。)他们是否尝试在电子表格中创建新标签页? (这有效地更改了FROM :“表名”必须与Excel中“选项卡”的名称相匹配。)当然,这些事件可以类似地影响到SQL Server的导入...但是至少是导入目标-SQL服务器表-可以一直存在,并且总是相同的格式,因此影响您的网页/ASP.NET应用程序的用户可见或实时问题将更加可预测。

希望有帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM