2016-05-05 7 views
1

Mein Schulprojekt ist es, eine Website zu machen, wo Menschen gebrauchte Schulartikel wie Taschenrechner etc. verkaufen/kaufen können. Ich benutze ASP.net & vb.net in Microsoft Visual Studio.Hinzufügen von Daten zu MS Access mit ASP.net

Mein Problem ist, dass ich nicht wirklich bekomme, wie die Daten auf der Website, eingefügt in die MS Access-Datenbank-Datei ausgefüllt. Das Problem ist, dass die Informationen über 2 Tabellen verteilt sind.

Ich habe versucht, 2 verschiedene SQL-Anweisungen zu verwenden, 1 für jede Tabelle, aber das funktioniert auch nicht. Ich habe das Format der Datenbank ein bisschen geändert und ich denke, dass jetzt das Problem ist, die Beziehung zwischen den 2 Tabellen einzugeben, aber ich habe keine Idee, wie man.

Ich habe diesen Code jetzt

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



    Dim VerkopenConn As New OleDb.OleDbConnection 
    Dim VerkopenCommArtikel, VerkopenCommGebruiker As New OleDb.OleDbCommand 

    VerkopenConn.ConnectionString = My.Settings.SvShopConnection 
    VerkopenCommArtikel.Connection = VerkopenConn 
    VerkopenCommGebruiker.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) 

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

    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschrijving", txtArtikelBeschrijving.Text) 
    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelPrijs", txtArtikelPrijs.Text) 
    VerkopenCommArtikel.Parameters.AddWithValue("@RubriekNaam", lstRubriek.SelectedItem.ToString) 
    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelAankoopdatum", CalAankoop.SelectedDate) 
    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelTekoopgezet", calVerkoop.SelectedDate) 
    VerkopenCommArtikel.Parameters.AddWithValue("@ArtikelBeschikbaar", True) 

    If VerkopenConn.State = ConnectionState.Closed Then VerkopenConn.Open() 
    VerkopenCommGebruiker.ExecuteNonQuery() 
    VerkopenCommArtikel.ExecuteNonQuery() 






End Sub 

End Class

Mit diesem Fehler bei der zweiten ExecuteNonQuery ausgeführt wird:

Eine Ausnahme vom Typ ‚System.Data.OleDb.OleDbException 'ist in System.Data.dll aufgetreten, wurde aber nicht im Benutzercode behandelt

Zusätzliche Informationen ion: Sie können einen Datensatz nicht hinzufügen oder ändern, da ein zugehöriger Datensatz in der Tabelle 'tblGebruiker' erforderlich ist.

Die erste Abfrage funktioniert und diese Daten wurden zur Datenbank hinzugefügt.

Datenbankbeziehungen unten.

Relations

+0

Gibt es irgendwelche Fehler, wenn es läuft? Könnten Sie auch einige Details zu Ihrer Zugangsdatenbank veröffentlichen? – Amber

+1

Sie haben 'RubriekID' in Ihrem Spaltenabschnitt Ihrer zweiten Abfrage verloren. –

+0

@amber Bearbeitete den Code und editierte die Frage. –

Antwort

1

Ihre erste Ausnahme war, weil Sie eine Spalte in Ihrer Abfrage fehlten. Diese zweite Ausnahme wird wahrscheinlich dadurch verursacht, dass Sie eine 1: 1-Beziehung zwischen tblArtikel und tblRubriek definiert haben. Sie müssen die Beziehung zu Eins-zu-Vielen ändern, um in diesem Fall Duplikate zuzulassen. tblRubriek wäre die "eine" Seite und tblArtikel wäre die "viele" Seite. Weil Sie einen Primärschlüssel in tblRubriek haben, der mit "vielen" Zeilen in tblArtikel verknüpft.

+0

Also muss ich in 'tblArtikel' 'RubriekNaam' anstatt 'RubriekID' verwenden und die Beziehung mit 'RubriekNaam' in 'tblRubriek' herstellen, oder? –

+0

'RubriekID' ist kein Primärschlüssel in' tblArtikel', daher sollte es kein Problem sein, es einzufügen, aber Sie müssen erwähnen, dass es eingefügt werden muss "INSERT INTO tblArtikel (** RubriekID, ** ArtikelBeschrijving , ArtikelPrijs, ArtikelAankoopdatum, ArtikelTekoopgezet) VALUES (@RubriekID, @ArtikelBeschrijving, @ArtikelPrijs, @ArtikelAankoopdatum, @ArtikelTekoopgezet) " – Amber

+0

@Amber ja, das habe ich vorher falsch gelesen. Meine Antwort wurde korrigiert. –