Ich bin mit der Erstellung eines einfachen GUI-basierten Datenbank-Viewer beauftragt. Die Datenbank wird auf unserem FTP-Server in Schulen gehostet, wir müssen Visual Basic verwenden und größtenteils funktioniert es Ich kann suchen, anzeigen und zur Datenbank hinzufügen, aber das Bearbeiten eines vorhandenen Datensatzes bereitet mir Probleme.Oracle-Datenbankfehler mit vb.net
Wenn ich versuche, den Datensatz zu aktualisieren, bekomme ich einen ora-00904 Fehler ungültiger Bezeichner, wenn kein Doppelpunkt (:) in wo Teil der Abfrage und ein ora-01008 nicht Variablen mit einem Doppelpunkt (:) gebunden. Wir haben bisher nur sqldeveloper benutzt und als letztes Projekt wurden wir gebeten, Visual Basic zu verwenden, aber wir haben nie etwas derartiges in der Klasse behandelt, also ist es eine Herausforderung, nehme ich an.
PS: Ich habe nur diesen Teil auskommentiert, so dass ich den Fehler sehen konnte.
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Dim strCustomerEmail As String = ""
Dim strLastName As String = ""
Dim strFirstName As String = ""
Dim strAddress As String = ""
Dim strCity As String = ""
Dim strState As String = ""
Dim intZip As Integer = 0
Dim datDateSignedUp As Date
Dim intCustomerNumber As Integer = 0
Try
strCustomerEmail = CStr(txtCustomerEmail.Text)
strLastName = CStr(txtLastName.Text)
strFirstName = CStr(txtFirstName.Text)
strAddress = CStr(txtAddress.Text)
strCity = CStr(txtCity.Text)
strState = CStr(txtState.Text)
intZip = CInt(txtZip.Text)
datDateSignedUp = CDate(txtDateSignedUp.Text)
intCustomerNumber = CInt(txtCustomerNumber.Text)
Dim sql As String = "UPDATE P_CLIENTS SET CUSTOMER_EMAIL = :CUSTOMER_EMAIL, LASTNAME = :LASTNAME, FIRSTNAME = :FIRSTNAME, ADDRESS = :ADDRESS, CITY = :CITY, STATE = :STATE, ZIP = :ZIP, DATE_SIGNED_UP = :DATE_SIGNED_UP, CUSTOMER# = :CUSTOMER# WHERE CUSTOMER_EMAIL = :EDIT_CUSTOMER_EMAIL"
Dim cmd2 As New OracleCommand(sql, conn)
conn.Open()
cmd2.Parameters.Add("CUSTOMER_EMAIL", strCustomerEmail)
cmd2.Parameters.Add("LASTNAME", strLastName)
cmd2.Parameters.Add("FIRSTNAME", strFirstName)
cmd2.Parameters.Add("ADDRESS", strAddress)
cmd2.Parameters.Add("CITY", strCity)
cmd2.Parameters.Add("STATE", strState)
cmd2.Parameters.Add("ZIP", intZip)
cmd2.Parameters.Add("DATE_SIGNED_UP", datDateSignedUp)
cmd2.Parameters.Add("EDIT_CUSTOMER_EMAIL", strEditCustomerEmail)
cmd2.CommandType = CommandType.Text
cmd2.ExecuteNonQuery()
txtCustomerEmail.Text = strEditCustomerEmail
txtLastName.Text = ""
txtFirstName.Text = ""
txtAddress.Text = ""
txtCity.Text = ""
txtState.Text = ""
txtZip.Clear()
txtDateSignedUp.Clear()
txtCustomerNumber.Clear()
'txtCustomerEmail.Select()
txtCustomerEmail.Enabled = True
txtLastName.Enabled = True
txtFirstName.Enabled = True
txtAddress.Enabled = True
txtCity.Enabled = True
txtState.Enabled = True
txtZip.Enabled = True
txtDateSignedUp.Enabled = True
txtCustomerNumber.Enabled = True
'Catch ex As Exception
' MessageBox.Show("An error occurred while attempting to add a new record.", "Error")
Finally
conn.Close()
txtCustomerEmail.Select()
End Try
End Sub
Warum fügen Sie den Doppelpunkt nicht auch in den Parameternamen hinzu, wenn Sie sie zur Parametersammlung hinzufügen? – Steve
Fehlt Ihnen Kunde # aus Ihren Parametern? – theduck
heilige Scheiße ich denke das ist es .... ich vermisse Kunde # Mist lass mich das versuchen. Ich arbeite seit Tagen an Projekten für meine Klassen. Ich bin so ausgebrannt, dass ich sowas vermisse. – killj0y