Sql 更新oracle语句不';行不通

Sql 更新oracle语句不';行不通,sql,vb.net,oracle,Sql,Vb.net,Oracle,我正在尝试用VB.Net更新记录。这是代码。它没有给出任何错误。但是每次我运行这段代码时,我都希望变量newbal会增加。这不会发生。这意味着update语句不起作用。有解决办法吗 Dim cmd5 As New OracleCommand cmd5.Connection = conn cmd5.CommandText = "SELECT * FROM d009022 WHERE prdacctid = :custid AND lbrcode = :lbrcode" cmd5.Prepare()

我正在尝试用VB.Net更新记录。这是代码。它没有给出任何错误。但是每次我运行这段代码时,我都希望变量
newbal
会增加。这不会发生。这意味着update语句不起作用。有解决办法吗

Dim cmd5 As New OracleCommand
cmd5.Connection = conn
cmd5.CommandText = "SELECT * FROM d009022 WHERE prdacctid = :custid AND lbrcode = :lbrcode"
cmd5.Prepare()
cmd5.Parameters.Add(":custid", customernumber)
cmd5.Parameters.Add(":lbrcode", lbr)
Try
     Dim drs As OracleDataReader = cmd5.ExecuteReader()
     drs.Read()
     Dim oldbal As Decimal = drs.Item("SHDCLRBALFCY")
     Dim newbal As Integer = CInt(oldbal) + CInt(amount)

     Dim cmd6 As New OracleCommand
     cmd6.Connection = conn
     cmd6.CommandText = "UPDATE d009022 SET shdclrbalfcy = :newbal WHERE prdacctid = :custnum AND lbrcode = :lbr"
     cmd6.Prepare()
     cmd6.BindByName = True
     cmd6.Parameters.Add(":newbal", newbal)
     cmd6.Parameters.Add(":custnum", customernumber)
     cmd6.Parameters.Add(":lbr", lbr)
     cmd6.ExecuteNonQuery()

oracle要求显式提交,可能缺少

oracle要求显式提交,可能缺少

您应该使用此结构来管理与oracle的事务(请参阅):


您应该使用此结构来管理与Oracle的事务(请参阅):


不,我每次都追踪它,它是200。@Tim Schmelter:有什么帮助吗?我还在挣扎:(不,我每次都追踪它,它是200。@Tim Schmelter:有什么帮助吗?我还在挣扎:(当我们在java中使用任何查询时,都有提交查询的选项,您必须将其签入。)VB@user1051505:只需将
COMMIT;
命令发送到数据库当我们在java中使用任何查询时,都有提交查询的选项,您必须将其签入VB@user1051505:只需将
COMMIT;
命令发送到database@user1051505:很高兴我@user1051505:很高兴有帮助。
Public Sub RunOracleTransaction(ByVal connectionString As String)
    Using connection As New OracleConnection(connectionString)
        connection.Open()

        Dim command As OracleCommand = connection.CreateCommand()
        Dim transaction As OracleTransaction

        ' Start a local transaction
        transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
        ' Assign transaction object for a pending local transaction
        command.Transaction = transaction

        Try
            command.CommandText = _
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')"
            command.ExecuteNonQuery()
            command.CommandText = _
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')"
            command.ExecuteNonQuery()
            transaction.Commit()
            Console.WriteLine("Both records are written to database.")
        Catch e As Exception
            transaction.Rollback()
            Console.WriteLine(e.ToString())
            Console.WriteLine("Neither record was written to database.")
        End Try
    End Using
End Sub