Функция обновления не работает в vb.net - PullRequest
0 голосов
/ 04 мая 2018

В настоящее время я разрабатываю систему с использованием VB.NET. У меня есть следующий запрос для обновления. Этот запрос работает, когда я запускаю в SQL Developer

UPDATE CCS2_TBL_INSPECTION_STANDARD SET CCSEQREVITEM = :CCSEQREVITEM, 
CCSREVEFFECTIVEDATE = TO_DATE(:CCSREVEFFECTIVEDATE,'DD/MM/YYYY') WHERE 
CCSEQID = :CCSEQID

Но когда я пытаюсь применить этот запрос в VB.net, он не работает. На самом деле поток для этой функции обновления работает, но когда я обновляю данные, он не работает. Например, я хочу обновить имя с «Али» до «Абу». Когда я нажимаю кнопку «Обновить», во всплывающих окнах появляется сообщение «Обновление успешно», но имя не меняется на «Абу», оно по-прежнему «Али». Там нет ошибки, когда я выполняю. Кто-нибудь знает? Ниже код VB.net:

Protected Sub editInspectionRev(eqid As String)

Dim xSQL As New System.Text.StringBuilder
xSQL.AppendLine("UPDATE CCS2_TBL_INSPECTION_STANDARD")
xSQL.AppendLine("SET")
xSQL.AppendLine("CCSEQREVITEM = :CCSEQREVITEM, CCSREVEFFECTIVEDATE = TO_DATE(:CCSREVEFFECTIVEDATE,'DD/MM/YYYY')")
xSQL.AppendLine("WHERE CCSEQID = :CCSEQID")

Using cn As New OracleConnection(ConString)
    cn.Open()
    Dim cmd As New OracleCommand(xSQL.ToString, cn)
    cmd.Connection = cn


    cmd.Parameters.Add(":CCSEQREVITEM", txtRevContent.Text)
    cmd.Parameters.Add(":CCSREVEFFECTIVEDATE", txtRevEffDate.Text)


    cmd.Parameters.Add(":CCSEQID", eqid)

    cmd.ExecuteNonQuery()
    cn.Close()

End Using
success3.Visible = True
DisplayRevisionDetails()

End Sub

1 Ответ

0 голосов
/ 04 мая 2018

Проблема в том, что вы выполнили транзакцию, но не смогли COMMIT ее. Вот пример правильного метода здесь , который я частично воспроизведу для потомков

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

    ...

    command.ExecuteNonQuery()
    transaction.Commit()

Обратите внимание, что мы начали транзакцию, а затем зафиксировали ее после выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...