0

我正在尝试将 Excel 表中的数据读取到 DataSet 中,但出现错误:“没有为一个或多个必需参数提供值。” 我做了一些研究,了解到这个错误通常发生在所需的值为空(在字符串的情况下为“”)或 null 时。下面是我的代码。

cnExcel = New System.Data.OleDb.OleDbConnection( _
              "provider=Microsoft.Jet.OLEDB.4.0; " & _
              "data source=" & FileName & "; " & _
              "Extended Properties=Excel 5.0;")
cdImport = New System.Data.OleDb.OleDbDataAdapter( _
              "select * from [" & cSheetName & "$] order by StoreID, ItemID", cnExcel)
dsImport = New System.Data.DataSet
cdImport.Fill(dsImport)
cnExcel.Close()

该错误发生在 cdImport.Fill(dsImport) 上,大概是因为没有任何东西可以填充 dsImport。

在做了一些调试后,我发现 cnExcel 的服务器版本字段是:错误:发生类型的异常:{System.InvalidOperationException}

我究竟做错了什么?

4

2 回答 2

1

以防万一有人想知道这是如何解决的:我最后只是将 excel 文件作为 csv 发送到我的服务器。然后服务器在文件上运行一个存储过程,它将一个表返回给我的应用程序。然后从该表中填充数据集。

于 2013-08-14T16:16:01.830 回答
0

您可能需要在Extended Properties=Excel 5.0;连接字符串的一部分周围加上额外的引号(有关更多信息,请参见connectionstrings.com )

于 2013-08-09T15:39:54.853 回答