Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在VB中组合两个csv文件时类型不匹配_Sql_Vba_Csv_Datasource - Fatal编程技术网

Sql 在VB中组合两个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

我的代码运行得很好,但当我生成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.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
,我想我只需要想一想如何摆脱它而不使用它搞砸数据类型