OracleCommand Update keine änderungen
Ich bin mit dem folgenden code zur Aktualisierung einer Tabelle in oracle. Es führt aber das update nicht Begehen. Wenn ich die Abfrage mit Oracle SQL Developer funktioniert es einwandfrei. Was bin ich? SELECT-Anweisungen funktionieren wie erwartet.
`Dim BillOfLadingNumber As String = txtBillOfLadingNumber.Text.Trim
Dim TrailerNumber As String = txtTrailerNumber.Text.Trim
Dim CarrierCode As String = txtCarrierCode.Text.Trim
Dim TransportationMethod As String = txtTransportationMethod.Text.Trim
Dim OracleCommand As New OracleCommand()
With OracleCommand
.Connection = OracleConnection
.CommandType = CommandType.Text
.CommandText = "UPDATE XXF_ASN_HEADERS SET BILL_OF_LADING_NUMBER ='" + BillOfLadingNumber + "',TRAILER_NUMBER ='" + TrailerNumber + "',CARRIER_CODE ='" + CarrierCode + "',TRANSPORTATION_METHOD ='" + TransportationMethod + "' WHERE HEADERID ='" + Request.QueryString("HeaderId") + "'"
End With
OracleConnection.Open()
Dim result As Integer = OracleCommand.ExecuteNonQuery()
OracleConnection.Close()
If result = 1 Then Response.Redirect("default.aspx")`
- Nicht Teil der Lösung, aber Sie sollten wirklich Parametern
- Gibt es eine Transaktion-Bereich, der nicht begangen?
- Ja, die Nutzung der OracleTransaction Objekt war der wichtigste Schlüssel. Danke an Euch alle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Danke an Euch alle für den Hinweis mich in die richtige Richtung. Dies ist der Letzte funktionierende code. Der trick war, mit dem OracleTransaction, der code unten funktioniert wie ein Charme. - Parameter verwenden, sind weiter. Weitere Informationen finden Sie hier
Dem Projekt an dem ich arbeite verwendet OracleCommand als gut. Der große Unterschied ist, dass alle unsere Datenbank-Aufrufe an gespeicherte Prozeduren anstatt dynamischer sql, die direkt die Datenbank geändert. Höchstwahrscheinlich werden Sie brauchen, um wickeln Sie die update-Anweisung in einem "BEGIN" und "END" - block, und wahrscheinlich fügen Sie ein "COMMIT;" - Anweisung.
Look rauskommt. Mindestens eine version von der .NET-Bibliothek für Oracle wird scheitern, wenn Sie carriage returns und line feeds in CommandText. Nur getrennte Dinge mit den Semikolons.