一个简单但非常奇怪的问题。我使用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”左右),但这些列的标题将作为空白“”读入。所有其他列的标题都可以正常读取,但不适用于包含列的日期。知道如何解决这个问题吗?
答案 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;"""