Master/Detail - Problem beim Einfügen

LJF

Grünschnabel
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:
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
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.
 
Zurück