Sql System.Data.OleDb.OLEDBEException:“条件表达式中的数据类型不匹配。”正在读取CSV文件

Sql System.Data.OleDb.OLEDBEException:“条件表达式中的数据类型不匹配。”正在读取CSV文件,sql,vb.net,csv,oledbexception,Sql,Vb.net,Csv,Oledbexception,尝试使用OLEDB读取VB.NET中的csv文件时,我收到以下错误: System.Data.OleDb.OLEDBEException:“条件表达式中的数据类型不匹配。” 我的代码是: Dim SQuery As String = "SELECT Div, Date, HomeTeam, AwayTeam, FTHG, FTAG, FTR, HTHG, HTAG, " _ & "HTR, BbMxH, BbAvH, BbMxD, BbA

尝试使用OLEDB读取VB.NET中的csv文件时,我收到以下错误:

System.Data.OleDb.OLEDBEException:“条件表达式中的数据类型不匹配。”

我的代码是:

Dim SQuery As String = "SELECT Div, Date, HomeTeam, AwayTeam, FTHG, FTAG, FTR, HTHG, HTAG, " _
                         & "HTR, BbMxH, BbAvH, BbMxD, BbAvD, BbMxA, BbAvA, BbMxGT25, BbAvGT25, " _
                         & "BbMxLT25, BbAvLT25, BbAHh, BbMxAHH, BbAvAHH, BbMxAHA, BbAvAHA FROM Historical.csv WHERE [Div] = 'E0'"

如果我不使用WHERE子句,它可以正常工作;如果我将WHERE子句设置为在“Div”以外的另一列上进行过滤,它也可以正常工作。奇怪的是,我有另一个文件,在每列中有完全相同的标题和数据格式类型,每次按“Div”过滤时,它都能完美地读取,如果我将问题文件中的数据排序为不同的顺序,它有时也能正常工作。我认为这可能与“Div”列中的数据类型有关,它们都是E0、E1、F1、F2、B1、SP1、I1等。我在程序的其他地方有一些简单的代码,使用OLEDB从单个csv文件中选择所有数据并将其复制到一个文件中,但由于某种原因,当它遇到F1或F2时,它会删除F,只留下1或2。OLEDB是否将这些单字母/数字组合视为其他内容,是否需要以某种方式对其进行转义?

检查您正在读取的CSV,以查看是否所有行都包含文本数据。可能是从前几行推断数据类型,然后查找与推断类型不匹配的行。您可以尝试使用shema.ini文件:Joe,您一定是对的,schema.ini文件成功了,现在每次都可以使用,谢谢。