Hallo zusammen,
ich bin VB-Anfängerin und habe ein Problem beim Einfügen eines Datensatzes.
Habe folgende Anwendung :
eine master/ detail- Anwendung, die ich mit dem Designer erstellt habe.
(Die Master-Tabelle ist im Detail Ansicht dargestellt und die
Detail-Tabelle ist in einem DatagridView zu sehen). Beide Tabelle werden über einen Bindingnavigator
gesteuert.
Das Problem:
ich versuche ein Sub für das AddNew-Button des Bidingsnavigators zu schreiben das so aussieht:
leider verlangt Visual Studio und DB der Primärschlüssel der Master-Tabelle obwohl dieser als Auto-Inkrement Feld definiert wurde.
Vielen Dank für Eure Hilfe.
ich bin VB-Anfängerin und habe ein Problem beim Einfügen eines Datensatzes.
Habe folgende Anwendung :
eine master/ detail- Anwendung, die ich mit dem Designer erstellt habe.
(Die Master-Tabelle ist im Detail Ansicht dargestellt und die
Detail-Tabelle ist in einem DatagridView zu sehen). Beide Tabelle werden über einen Bindingnavigator
gesteuert.
Das Problem:
ich versuche ein Sub für das AddNew-Button des Bidingsnavigators zu schreiben das so aussieht:
Code:
Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
Dim stamZeile As DataRow
Dim i As Integer
Dim j As Integer
stamZeile = DS.book.NewRow()
If Integer.TryParse(txtEJahr.Text, i) And Integer.Parse(txtBank.Text, _
j) Then
With stamZeile
.Item("titel") = txtTitel.Text
.Item("sprache") = txtSprache.Text
.Item("ort") = txtOrt.Text
.Item("isbn") = txtISBN.Text
.Item("issn") = txtISSN.Text
.Item("szahl") = txtSeiten.Text
.Item("ejahr") = i
.Item("b_nr") = j
.Item("typ") = txtTyp.Text
End With
Me.bookTableAdapter.Insert(txtTitel.Text, txtSprache.Text, _
txtOrt.Text, txtISBN.Text, txtISSN.Text, txtSeiten.Text, i, j, _
txtTyp.Text) ' an dieser Stelle tritt eine Fehlermeldung auf
End If
DS.book.AcceptChanges()
DS.book.Rows.Add(stamZeile)
Me.bookTableAdapter.Update(Me.DS.book)
Dim newID As Integer
newID = CType(bookTableAdapter.ScalarQuery(), Integer)' hier fange ich
' den Primärschlüssel der
' Master-Tabelle ab, der vom System generiert wurde.
Dim comm As New OracleCommand
Dim str As String
comm.CommandType = CommandType.Text
Dim PersV As New DataView
PersV.Table = DS.author
Dim persZeile As DataRowView
PersV.RowStateFilter = DataViewRowState.Added
For Each persZeile In PersV
Select Case persZeile.Row.RowState
Case DataRowState.Added
With persZeile
txtMnr.Text = newID.ToString
str = "INSERT INTO author (STAM_NR, FUNR, NAME," & _
"VORNAME) VALUES(.Item('stam_nr'), .Item('funr')," & _
".Item('name'), .Item('vorname'))"
comm.CommandText = str
comm.ExecuteNonQuery()
End With
End Select
Next
End Sub
Vielen Dank für Eure Hilfe.