ORA-01008:未绑定所有变量-VB.NET web应用程序

ORA-01008:未绑定所有变量-VB.NET web应用程序,vb.net,oracle,Vb.net,Oracle,我正在编写一个VB.NET函数来更新一个包含四列的表,如下所示。它每次都失败,例外情况是ORA-01008:并非所有变量都绑定了 有人能帮忙吗 Public Sub UpdateLog(ByVal intUserID As Integer, ByVal strDesc As String, ByVal intLogID As Integer) Dim oraConn As OracleConnection Dim cmd As OracleCommand Try

我正在编写一个VB.NET函数来更新一个包含四列的表,如下所示。它每次都失败,例外情况是ORA-01008:并非所有变量都绑定了

有人能帮忙吗

Public Sub UpdateLog(ByVal intUserID As Integer, ByVal strDesc As String, ByVal intLogID As Integer)

Dim oraConn As OracleConnection

    Dim cmd As OracleCommand

    Try
        cmd = New OracleCommand
        cmd.Parameters.Clear()
        cmd.CommandText = "Insert Into Tbl_Trans_Log(UserID,TransID,TransDate,ActionDone) values (:userId,:logId,:transdate,:action)"
        cmd.CommandType = CommandType.Text
        cmd.BindByName = True

        cmd.Parameters.Add("userId", OracleDbType.Int64).Value = intUserID
        cmd.Parameters.Add("logId", OracleDbType.Int64).Value = intLogID
        cmd.Parameters.Add("transdate", OracleDbType.Date).Value = DateTime.Now
        cmd.Parameters.Add("action", OracleDbType.Varchar2).Value = strDesc

        oraConn = New OracleConnection(ConfigurationManager.ConnectionStrings("connString").ConnectionString)
        oraConn.Open()

        cmd.Connection = oraConn
        cmd.ExecuteNonQuery()



    Catch ex As Exception
        sWriteErrorLog("C:\", "log - sUpdateTransLog -> " & ex.Message)
    Finally
        oraConn.close()
    End Try

End Sub

下面的代码适用于我

cmd=新的OracleCommand

        cmd.Parameters.Clear()
        cmd.CommandText = "Insert Into Tbl_Trans_Log(UserID,TransID,TransDate,ActionDone) values (:userId,:logId,:transdate,:action)"
        cmd.CommandType = CommandType.Text
        cmd.BindByName = True

        cmd.Parameters.Add(New OracleParameter(":userId", OracleDbType.Int64)).Value = intUserID
        cmd.Parameters.Add(New OracleParameter(":logId", OracleDbType.Int64)).Value = intLogID
        cmd.Parameters.Add(New OracleParameter(":transdate", OracleDbType.Date)).Value = DateTime.Now
        cmd.Parameters.Add(New OracleParameter(":action", OracleDbType.Varchar2)).Value = strDesc

        oraConn = New OracleConnection(ConfigurationManager.ConnectionStrings("xxxxxxxxx").ConnectionString)
        oraConn.Open()

        cmd.Connection = oraConn
        cmd.ExecuteNonQuery()

行似乎应该以分号结尾,例外部分的
“&ex.Message
”应该引用为
“&ex.Message”
,谢谢你的回复。我应该这样说吗?用分号cmd.CommandText=“Insert-Into-Tbl_Trans_Log(UserID,TransID,TransDate,ActionDone)值(:userId,:logId,:transdate,:action);“如果您使用的是BindByName,我想您可能需要确保您的oracle变量名称匹配,您是否尝试添加了
?据我所知,您不需要在引号内使用分号,但正如我所知,应该在
…value(:userId,:logId,:transdate,:action)等引号后存在。”
Hi soohiinigan,是的,我已经尝试将:添加到参数中。结果仍然是一样的