Hallo Fzelle, CLL und Alle
Fzelle deinen Vorschlag einer stored procecdure zu schreiben bin ich gefolgt und danach folgender
Code geschrieben:
Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
Try
Dim comm = New OracleCommand("BookInsert")
With comm
.CommandType = CommandType.StoredProcedure
With .Parameters
.Add(New OracleParameter(":bookid", OracleDbType.Int32, 8, _
ParameterDirection.Output))
.Add(New OracleParameter(":Typ", OracleDbType.Varchar2, 1, _
ParameterDirection.Input, ""))
.Add(New OracleParameter(":sprache", OracleDbType.Varchar2, 3, _
ParameterDirection.Input, ""))
.Add(New OracleParameter(":ort", OracleDbType.Varchar2, 30, _
ParameterDirection.Input, ""))
.Add(New OracleParameter(":Titel", OracleDbType.Varchar2, 255, _
ParameterDirection.Input, ""))
.Add(New OracleParameter(":isbn", OracleDbType.Varchar2, 20, _
ParameterDirection.Input, ""))
.Add(New OracleParameter(":issn", OracleDbType.Varchar2, 20, _
ParameterDirection.Input, ""))
.Add(New OracleParameter(":szahl", OracleDbType.Varchar2, 15, _
ParameterDirection.Input, ""))
.Add(New OracleParameter(":b_nr", OracleDbType.Int16, 2, _
ParameterDirection.Input, 0))
.Add(New OracleParameter(":ejahr", OracleDbType.Int16, 4, _
ParameterDirection.Input, 0))
End With
End With
'stored procedure ausführen
comm.ExecuteReader()
MsgBox("Status: " & comm.Parameters(":bookid").Value)
Catch ex As Exception
MsgBox(ex.Message)
End Try Nach dem Click auf AddNew Item erhielte ich folgende Fehlermeldung:
Ungültige konvertierung von der Zeichenfolge in Typ integer.
Nachdem ich hiermit nicht weitergekommen bin wollte ich das Problem mit der RowUpdated-Methode lösen. Doch als ich sowas schrieb:
Private Sub BookTableAdapter_RowUpdated(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles BookTableAdapter.RowUpdated kam der Fehler: Fehler 1 Das Ereignis "RowUpdated" wurde nicht gefunden.
Ein With BookTableAdapter
AddHandler .RowUpdated, New OracleRowUpdatedEventHandler(AddressOf _
OnRowUpdated)
End With um die obige RowUdated-Methode ausführen zu dürfen hat auch nicht geholfen.
Nach intensiven Recherchen um diesen Fehlern zu korrigieren bzw. nachvollzuziehen
habe ich im Buch von Michael Koflers Visual Basic 2008 gelesen, dass man den Code nur für das Speichern in DB benötigt. Für den AddNewItem Button benötigt man beim Binding Navigator keinen Code!
Frage ist ob meinen Code für den Speicher-Button reicht?:
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles btnSave.Click
Me.AuthorTableAdapter.Update(Me.DS.Author)
Me.BookTableAdapter.Update(Me.DS.Book)
End Sub Wenn ja wie wo und wann findet die Fremschlüsselübergabe (das generierte BookID der Tab. Book nach Tab. Author)?
Danke für jegliche(r) Hilfe, und Tipps. |