【问题标题】:Store Excel Sheet data to sql server将 Excel 工作表数据存储到 sql server
【发布时间】:2014-02-01 07:12:07
【问题描述】:

我收到类似

的错误消息

初始化字符串的格式不符合从索引 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();

【问题讨论】:

  • 您能否添加有关fileuploadExcelRequeststrConnection 的信息。需要哪些命名空间,它们是如何实例化的?

标签: c# asp.net sql sql-server excel


【解决方案1】:

嗯,我看到一件事很容易解决……尝试改变:

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(或 Enterprise Manager)中,如果您右键单击数据库名称,然后转到“任务”,您将看到导入数据的选项。在 SQL Server 2005 或更高版本中,该向导使用 SSIS;在 SQL Server 2000 中,该向导使用 DTS。

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

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

希望对你有帮助……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多