附加信息:您无法添加或更改记录,因为表'tblRubriek'

时间:2016-05-06 12:27:18

标签: asp.net vb.net ms-access ado.net oledb

我有一个学校项目,我需要将数据添加到彼此相关的3个表中。我的问题是主键与另一键有关,我收到错误。

这是我正在运行的代码

    Protected Sub bntVerzenden_Click(sender As Object, e As EventArgs) Handles bntVerzenden.Click


    Dim intGebruikersID, intRubriekID As Integer
    Dim VerkopenConn As New OleDb.OleDbConnection
    Dim VerkopenCommArtikel, VerkopenCommGebruiker, GebruikersIDComm, RubriekIDComm As New OleDb.OleDbCommand


    VerkopenConn.ConnectionString = My.Settings.SvShopConnection
    VerkopenCommArtikel.Connection = VerkopenConn
    VerkopenCommGebruiker.Connection = VerkopenConn
    GebruikersIDComm.Connection = VerkopenConn
    RubriekIDComm.Connection = VerkopenConn


    'Gebruiker gegevens aan de database toevoegen
    VerkopenCommGebruiker.CommandText = "INSERT INTO tblGebruiker (GebruikersNaam, GebruikersVoornaam, GebruikersEmail, GebruikersGSM) VALUES (@GebruikersNaam, @GebruikersVoornaam, @GebruikersEmail, @GebruikersGSM)"

    VerkopenCommGebruiker.Parameters.AddWithValue("@GebruikersNaam", txtNaam.Text)
    VerkopenCommGebruiker.Parameters.AddWithValue("@GebruikersVoornaam", txtVNaam.Text)
    VerkopenCommGebruiker.Parameters.AddWithValue("@GebruikersEmail", txtEmail.Text)
    VerkopenCommGebruiker.Parameters.AddWithValue("@GebruikersGSM", txtGsm.Text)


    'GebruikersID uit de database halen
    GebruikersIDComm.CommandText = "SELECT tblGebruiker.GebruikersID FROM tblGebruiker WHERE tblGebruiker.GebruikersNaam = @Naam AND tblGebruiker.GebruikersVoornaam = @VNaam;"

    GebruikersIDComm.Parameters.AddWithValue("@Naam", txtNaam.Text)
    GebruikersIDComm.Parameters.AddWithValue("@VNaam", txtVNaam.Text)

    'RubriekID uit de database halen
    RubriekIDComm.CommandText = "SELECT tblRubriek.RubriekID FROM tblRubriek WHERE tblRubriek.RubriekNaam = @RubriekNaam"

    RubriekIDComm.Parameters.AddWithValue("@RubriekNaam", lstRubriek.SelectedItem.ToString)


    'Artikel gegevens aan de database toevoegen
    VerkopenCommArtikel.CommandText = "INSERT INTO tblArtikel (ArtikelBeschrijving, ArtikelPrijs, RubriekID, ArtikelAankoopdatum, ArtikelTekoopgezet, ArtikelBeschikbaar, GebruikersID) VALUES ( @ArtikelBeschrijving, @ArtikelPrijs, @RubriekID, @ArtikelAankoopdatum, @ArtikelTekoopgezet, @ArtikelBeschikbaar, @GebruikersID)"

    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschrijving", txtArtikelBeschrijving.Text)
    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelPrijs", txtArtikelPrijs.Text)
    VerkopenCommArtikel.Parameters.AddWithValue("@RubriekID", intRubriekID)
    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelAankoopdatum", CalAankoop.SelectedDate)
    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelTekoopgezet", calVerkoop.SelectedDate)
    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschikbaar", True)
    VerkopenCommArtikel.Parameters.AddWithValue("@GebruikersID", intGebruikersID)

    If VerkopenConn.State = ConnectionState.Closed Then VerkopenConn.Open()
    VerkopenCommGebruiker.ExecuteNonQuery()
    intGebruikersID = Integer.Parse(GebruikersIDComm.ExecuteScalar)



    intRubriekID = Integer.Parse(RubriekIDComm.ExecuteScalar)



    VerkopenCommArtikel.ExecuteNonQuery()






End Sub

VerkopenCommArtikel.ExecuteNonQuery()我是否收到此错误

  

System.Data.dll中出现'System.Data.OleDb.OleDbException'类型的异常,但未在用户代码中处理

     

附加信息:您无法添加或更改记录,因为表'tblRubriek'中需要相关记录。

This is my Database

1 个答案:

答案 0 :(得分:1)

您正在使用

intRubriekID = Integer.Parse(RubriekIDComm.ExecuteScalar)

在之后检索intRubriekID您已经设置了参数值

VerkopenCommArtikel.Parameters.AddWithValue("@RubriekID", intRubriekID)

首先需要执行SELECT查询,然后为INSERT INTO tblArtikel查询设置参数值,然后执行它。