如何为Npgsql准备的语句具有多个数据?

时间:2018-07-26 01:16:54

标签: database vb.net npgsql

下面是我的代码,用于在我的vb .net代码中为Npgsql的已准备好的语句添加参数:

Dim xConn As NpgsqlConnection = ConnectDB()
Dim xCmd As NpgsqlCommand = xConn.CreateCommand()
xCmd.CommandText = "UPDATE " & xTable & " SET previous_tot_adj = @prev_adj ,tot_adj = @tot_adj WHERE version = " & _version & " AND monthly_mq_id = @Index"
For Each Index In _Results.Keys
    If Not IsNothing(_Results.Item(Index)) Then
        xCmd.Parameters.AddWithValue("prev_adj", NpgsqlTypes.NpgsqlDbType.Double, _Results.Item(Index))
        xCmd.Parameters.AddWithValue("tot_adj", NpgsqlTypes.NpgsqlDbType.Double, _Results.Item(Index))
        xCmd.Parameters.AddWithValue("Index", NpgsqlTypes.NpgsqlDbType.Bigint, Index)
    End If
Next
xCmd.Prepare()
xCmd.ExecuteNonQuery()

执行此代码后,出现这种错误:

  

Npgsql.dll中发生类型为'Npgsql.NpgsqlException'的第一次机会异常   错误:08P01:绑定消息具有34193个参数格式,但有1个参数

有人能启发我我在做什么吗?

1 个答案:

答案 0 :(得分:0)

我发现问题所在,我使用的是过时的Npgsql。我已经安装了新的Verion v4.0.1 NugetGallery。这解决了这个问题。