使用vb .net OleDB读取Excel文件时出错

时间:2015-03-23 11:14:33

标签: vb.net excel oledb

早上好, 使用以下代码读取Excel文件。

[CODE]

    strFClasse = oCld.GetSettingBus("BSJVE001", "OPZIONI", ".", "FileClasse", Path.Combine(oApp.AscDir, "Classi.xls"), " ",   Path.Combine(oApp.AscDir, "Classi.xls"))
    MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & strFClasse & "';Extended Properties=Excel 8.0;")
    MyConnection.Open()

    strSCl = "SELECT * FROM [Classi$A:B] WHERE [Group] = " & CStrSQL(strCodIn)
    MyCommand = New System.Data.OleDb.OleDbDataAdapter(strSCl, MyConnection)
    MyCommand.Fill(dtTemp)
[/CODE]

在测试中运行生产中的所有内容(Windows 7),我收到以下错误:

  

OleDbException:-2147467259 - 创建文件时出错。

提前致谢。

2 个答案:

答案 0 :(得分:0)

当您使用它时,如果OLEDB无法找到它,它将尝试创建一个文件。我怀疑您的服务器无法访问该路径,因此假设该文件不存在,然后尝试创建它。这也会失败,因此您会收到“Error Creating File”错误。检查路径上的安全性。

顺便说一句,您应该使用Microsoft.ACE.OLEDB.12.0提供程序,因为V4.0现在已经很老了。

您还可以在连接字符串中添加HDR = Yes和IMEX = 1。第一个指示工作表是否在第一行中具有列名称,第二个指示OLEDB应将列视为文本。这有助于避免混合数据列的所有问题。

最后明确定义变量是一种好习惯。

Dim MyConnection As System.Data.OleDb.OleDbConnection

答案 1 :(得分:0)

对于其他寻找此常规错误的其他原因的人,如果您在文件路径中添加其他不必要的空格,我会看到此错误。例如,在“c:\ Folder1 \ Folder2 \ Myfile.xls”中,“Folder1”之后的额外空格似乎也会产生此类错误。