VB.NET - 在尝试读取数据列的标题时从Excel读取空白字符串?

时间:2011-08-25 13:30:52

标签: vb.net excel

一个简单但非常奇怪的问题。我使用OLEDB连接从excel数据库读取,并使用此循环读取每列的所有数据

While reader.Read()

            For i As Integer = 0 To reader.FieldCount - 1
                temp = reader(i).ToString + ControlChars.Tab
                output_file.Write(temp)
                'output_file.Write(reader(i).ToString() + ControlChars.Tab)
            Next

            output_file.WriteLine()
        End While

某些列包含日期信息,这些日期信息可以正常读取(通常以字符串“2/20/2011”左右),但这些列的标题将作为空白“”读入。所有其他列的标题都可以正常读取,但不适用于包含列的日期。知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

是因为OLEDB是日期列的推断类型(DateTime或其他),并且标题不符合此类型?我在ODBC中遇到了类似的问题,忽略了列中的奇数字符串,否则就是数字。

答案 1 :(得分:0)

这就是解决方案,我偶然发现了这个问题。您的连接字符串需要“IMEX = 1;”在其中,它告诉读者所有数据类型都应该被读作字符串。

Dim jet_string As String = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + input_file_path + ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"""