如何在vb中发送odbc表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在vb中发送odbc表相关的知识,希望对你有一定的参考价值。

我正在尝试在vb中发送odbc表。 datatable参数是P_DETALLE,但我收到如下错误:

没有将对象类型System.Data.DataTable分配给已知托管提供程序的本机类型

代码是这样的:

Sub ADMINISTRAR_ARTEFACTO(ByVal P As E_ARTEFACTO)
    Dim CONECTION As New OdbcConnection
    Try
        CONECTION.ConnectionString = ConfigurationManager.ConnectionStrings("ALURHE_DBConnectionString_64").ConnectionString + ";pwd=123"
        Dim COMMAND As OdbcCommand = New OdbcCommand("{call SP_ADM_ARTEFACTO (?,?,?,?,?,?,?,?)}", CONECTION)

        With COMMAND

            .Parameters.AddWithValue("V_SERIE", P.P_SERIE)
            .Parameters.AddWithValue("V_TIPO_ARTEFACTO", P.P_TIPO_ARTEFACTO)
            .Parameters.AddWithValue("V_MODELO", P.P_MODELO)
            .Parameters.AddWithValue("V_MARCA", P.P_MARCA)

            .Parameters.AddWithValue("V_DETALLE", P.P_DETALLE)
            .Parameters.AddWithValue("V_USUARIO", P.P_USUARIO)
            .Parameters.AddWithValue("V_ID_ARTEFACTO", If(P.P_TIPO_OPERACION = "M", P.P_ID_ARTEFACTO, DBNull.Value))
            .Parameters.AddWithValue("V_TIPO_OPERACION", P.P_TIPO_OPERACION)


        End With


        'If P.P_TIPO_OPERACION = "M" Then
        '    COMMAND.Parameters.AddWithValue("@ID_PRODUCTO", P.P_ID_PRODUCTO)
        'End If

        CONECTION.Open()
        COMMAND.ExecuteNonQuery()
        CONECTION.Close()

    Catch ex As Exception
        If (CONECTION.State = ConnectionState.Open) Then
            CONECTION.Close()
        End If

        Throw ex
    End Try
End Sub
答案

DataTable不能是ODBC提供程序it is not supported的命令参数值。

如果指定了SqlDbType.Structured,则可以使用MSSQL提供程序执行此操作。

您可以做的一件事是将数据从DataTable插入到临时表中,然后在查询/过程中对该表进行连接。

以上是关于如何在vb中发送odbc表的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET 从 ODBC 获取数据为 JSON

从 VB 代码通过电子邮件将多个范围作为附件发送

vb.net如何连接远程db2数据库

我应该如何使用 Outlook 发送代码片段?

如何按名称在 ODBC 连接中查找表的架构?

如何在 vb.net 中发送 gmail 电子邮件?