[VB.NET] Twee gekoppelde records toevoegen (TableAdapter)

Pagina: 1
Acties:

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Hallo,

Ik ben een beetje nieuw met Visual Basic .NET (2005) en probeer twee records toe te voegen aan een Access database. De tweede record bevat het ID van de eerste record. Alleen krijg ik het niet werkend.

Ik probeer het met de volgende code:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Dim common As Common = New Common
Dim rowNr As Integer
Dim New_Kosten_ID As Integer

Try
    rowNr = Me.KostenTableAdapter.Insert(Paard_Nummer, _
                        cbKostengroep.SelectedValue, _
                        txtOmschrijving.Text, _
                        txtEenheid.Text, _
                        common.getNumeric(txtAantal.Text), _
                        cbPeriode.Text, _
                        0)

    Me.DdsKostenbeheer.AcceptChanges()

    ' Is dit nodig?
    Me.KostenTableAdapter.Fill(Me.DdsKostenbeheer.Kosten)

    New_Kosten_ID = Me.DdsKostenbeheer.Kosten.Rows(rowNr).Item("Kosten_Id")

    rowNr = Me.Kosten_PrijzenTableAdapter.Insert(New_Kosten_ID, _
                        Date.Now, _
                        common.getNumeric(txtPrijsPerEenheid.Text), _
                        common.getNumeric(txtPrijsPerPeriode.Text))

    Me.DdsKostenbeheer.AcceptChanges()


    Me.DialogResult = Windows.Forms.DialogResult.OK

    Me.Dispose()
Catch ex As Exception
    MsgBox(ex.Message)
    Exit Sub
End Try

Zoals jullie zien gebruik ik rowNr om de return waarde van de insert in te zetten. Maar geeft insert wel eens het rownummer van de nieuwe row terug of een 1 als het goed is en een -1 als het niet goed is? Ik denk dat laatse...maar ja.... na veel zoeken begin ik wanhopig te worden.

Wie kan mij helpen?

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Ik heb het nu helemaal anders gedaan. Iemand nog op of aanmerkingen? Misschien dat ik iets beter anders kan aanpakken?

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Dim connection As OleDb.OleDbConnection
Dim command As OleDb.OleDbCommand

' Verbinden
connection = Me.KostenTableAdapter.Connection

connection.Open()

' Kosten toevoegen
command = connection.CreateCommand

command.CommandText = "INSERT INTO Kosten " & _
            "(Paard_Nummer, Kostengroep_ID, Kosten_Omschrijving, Kosten_Eenheid, Kosten_Aantal, Kosten_Periode) " & _
            "VALUES(?, ?, ?, ?, ?, ?);"

command.Parameters.Add(New OleDb.OleDbParameter("@Paard_Nummer", Paard_Nummer))
command.Parameters.Add(New OleDb.OleDbParameter("@Kostengroep_ID", cbKostengroep.SelectedValue))
command.Parameters.Add(New OleDb.OleDbParameter("@Kosten_Omschrijving", txtOmschrijving.Text))
command.Parameters.Add(New OleDb.OleDbParameter("@Kosten_Eenheid", txtEenheid.Text))
command.Parameters.Add(New OleDb.OleDbParameter("@Kosten_Aantal", common.getNumeric(txtAantal.Text)))
command.Parameters.Add(New OleDb.OleDbParameter("@Kosten_Periode", cbPeriode.Text))

command.ExecuteNonQuery()

' Kosten_Prijzen toevoegen
command = connection.CreateCommand

command.CommandText = "INSERT INTO Kosten_Prijzen " & _
            "(Kosten_ID, Kosten_Prijs_Datum, Kosten_Prijs_Per_Eenheid, Kosten_Prijs_Per_Periode)" & _
            "VALUES(@@IDENTITY, ?, ?, ?);"

command.Parameters.Add(New OleDb.OleDbParameter("@Kosten_Prijs_Datum", Date.Now.ToString))
command.Parameters.Add(New OleDb.OleDbParameter("@Kosten_Prijs_Per_Eenheid", common.getNumeric(txtPrijsPerEenheid.Text)))
command.Parameters.Add(New OleDb.OleDbParameter("@Kosten_Prijs_Per_Periode", common.getNumeric(txtPrijsPerPeriode.Text)))

command.ExecuteNonQuery()

' Verbinding verbreken
connection.Close()

Verwijderd

Ik ben ook nieuw in VB.NET,

ik zie geen connectionstring waar je verbinding maakt met database...

  • Slagroom
  • Registratie: Juni 2001
  • Laatst online: 04-12-2025
Die haal ik uit KostenTableAdapter