Sql 在VB中组合两个csv文件时类型不匹配
我的代码运行得很好,但当我生成CSV文件的新更新版本时,它突然在我身上出错,并给我一个类型不匹配的捕获 这是我现在掌握的代码Sql 在VB中组合两个csv文件时类型不匹配,sql,vba,csv,datasource,Sql,Vba,Csv,Datasource,我的代码运行得很好,但当我生成CSV文件的新更新版本时,它突然在我身上出错,并给我一个类型不匹配的捕获 这是我现在掌握的代码 Dim A As String = "ADusers.csv" Dim B As String = "MlnExp.csv" Dim filePath As String = "C:\CSV" Try Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4
Dim A As String = "ADusers.csv"
Dim B As String = "MlnExp.csv"
Dim filePath As String = "C:\CSV"
Try
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & (filePath) & "\;Extended Properties='text;HDR=Yes'"
Dim sSql As String = "SELECT *" _
& "FROM ([" & (B) & "] B LEFT JOIN [" & (A) & "] A ON B.EmployeeNumber = A.employeeID)"
Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(ConnectionString)
Dim Command As OleDb.OleDbCommand = New OleDb.OleDbCommand(sSql, conn)
Command.CommandType = CommandType.Text
conn.Open()
Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sSql, conn)
Dim dt As DataTable = New DataTable
da.Fill(dt)
DataGrid1.DataSource = dt
DataGrid1.Update()
conn.Close()
lblStatus.Text = "CSV combined... Now saving to file."
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
在完成之前,将两个CSV文件合并,然后在我的datagrid中显示它们。但现在我的渔获量又回来了
表达式中的类型不匹配
我会检查B.EmployeeNumber=A.employeeID
在这两个文件中,一个是文本值(左对齐),另一个是整数(右对齐)您试过调试它吗?是的。我得到的错误
System.Data.OleDb.OledBeException”类型的未处理异常发生在System.Data.dll中。其他信息:表达式中的类型不匹配。
它们看起来都在CSV文件中右对齐,但当我实际单击“对齐”按钮时,它神奇地决定工作。。。我有两个csv文件都是由PowerShell编写的,所以它们应该相等。知道我怎样才能强迫他们保持这种状态吗?在VB中呢?我可以强制它们为整数吗?在您的sql语句中,这可能会起作用……从([“&(B)&”]B左连接[“&(A)&”]A ONCAST(B.EmployeeNumber AS INT)=CAST(A.employeeID AS INT)中选择*“&”现在我收到一条错误消息IErrorInfo.GetDescription失败,而E_失败(0x80004005)
我发现了一些问题。当我从PowerShell导出MlnExport文件时,我在其中有一个-NoTypeInformation
,我猜它删除了integer属性。现在唯一的问题是,它在顶部放了一行,上面写着#TYPE System.Data.DataRow
,我想我只需要想一想如何摆脱它而不使用它搞砸数据类型