tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
10290
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von danisan
    danisan danisan ist offline Rookie
    Registriert seit
    Apr 2004
    Ort
    Lehnitz (Brandenburg)
    Beiträge
    8
    Moin zusammen,
    habe ein Problem mit meinem Datenbankzugriff unter
    VB.net 2003.
    Mit Hilfe einer Select-Abfrage in SQL kann ich
    die Datensätze meiner Datenbank ohne
    Probleme auslesen. Die DB ist relational angelegt.
    Wenn ich nun aber versuche, neue Datensätze in die
    Datenbank zu schreiben, gibt es ein Problem:

    Mit folgender Befehlsfolge kann ich Daten hinzufügen:

    INSERT INTO Tabelle1(Feld)
    VALUES (Blabla)

    Problem ist,dass ich net mehrere Einträge gleichzeitg
    durchführen kann und zwar in mehrere Tabellen
    gleichzeitig.
    VB.net akzeptiert nicht meine Syntax.

    Kann mir jemand einen Tip geben, wie ich in die
    verschiedenen verknüpften Tabellen gleichzeitig
    Werte schreiben kann?

    Der bisherige Code lautet wie folgt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Dim _dt As New DataTable
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'Datenbankverbindung deklarieren'
    Dim Cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=meine_ Datenbank.mdb;" & "User ID=Admin;")
    'Datenadapter mit den im Puffer gespeicherten Daten füllen
    OleDbDataAdapter1.Fill(_dt)
    Cn.Close()
    DataGrid1.DataSource = _dt
    'Konvertierung der Datensätze in eine Zeichenkette
    DataGrid1.DataMember = _dt.ToString
    End Sub

    Der SELECT-Befehl ist dieser, denn es sind wirklich viele Tabellen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    SELECT Artikel.Artikelname, Einkaufspreis.Stückzahl, Einkaufspreis.Stückpreis, Lieferant.Name, Wareneingang.LieferNr, Wareneingang.Lieferdatum, 
    Verkaufspreis.Stückzahl AS Stck, Verkaufspreis.Stückpreis AS Stckpreis, Käufer.Nachname, Warenausgang.Rechnungsnr, Warenausgang.Datum, 
    Warenausgang.bezahlt
    FROM (((((Warenausgang INNER JOIN
    Käufer ON Warenausgang.KID = Käufer.KID) INNER JOIN
    Wareneingang ON Warenausgang.LieferNr = Wareneingang.LieferNr) INNER JOIN
    (Lieferant INNER JOIN
    Einkaufspreis ON Lieferant.VID = Einkaufspreis.VID) ON Wareneingang.LieferNr = Einkaufspreis.LieferNr) INNER JOIN
    Verkaufspreis ON Warenausgang.Rechnungsnr = Verkaufspreis.Rechnungsnr) INNER JOIN
    Artikel ON Warenausgang.Artikelnr = Artikel.Artikelnr)

    In diese Tabellen sollen nun neue Datensätze eingefügt werden.
    Das lässt sich über die grafische Benutzeroberfläche handhaben.
    Aber der gültige Befehl für das INSERT INTO
    schlägt fehl.
    Wär euch sehr dankbar, wenn ihr mir helfen könnt.

    LG
    danisan

     

  2. #2
    Avatar von hurricane
    hurricane hurricane ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Ort
    Bestensee bei Berlin
    Beiträge
    61
    Hallo danisan,

    funktioniert denn folgendes nicht?


    INSERT INTO Tabelle1(Feld1, Feld2, Feld3)
    VALUES (Wert1, Wert2, Wert3)


    Also bei mir geht das und es würde mich wundern wenn da ein Fehler kommt. Wenn du ein Text-Feld in die DB schreiben willst, musst du natürlich noch Hochkommas verwenden ('Text').

    Wenn der Wert für Wert1 - Wert3 z.B. aus einer TextBox kommt, dann machst du folgendes:

    INSERT INTO Tabelle1(Feld1, Feld2, Feld3)
    VALUES ('" + wert1.Text + "', '" + wert2.Text + "', '" + wert3.Text + "')


    ciao Anke
     

  3. #3
    Avatar von danisan
    danisan danisan ist offline Rookie
    Registriert seit
    Apr 2004
    Ort
    Lehnitz (Brandenburg)
    Beiträge
    8
    Hei Anke,

    danke für die Antwort.
    Leider hab ich schon soviel ausprobiert und es gibt immer nur
    Probleme mit den Semikola.
    Da ich ja ein Datensatz über mehrere Tabellen verteilen will.
    brauche ich ja mehrere INSERTS. Die trenn ich doch nun
    mit Hilfe des Semikolons. Aber da gibt es eben die Fehlermeldung,
    dass ein Zeichen nach Ende der SQL-Anweisung gefunden wurde.


    Die Hochkommas habe ich auch schon gesetzt, aber brachte leider auch net
    den gewünschten Erfolg.
    Kann man denn mehrere INSERTs auch anders trennen?

    LG
    Dani
     

  4. #4
    Avatar von hurricane
    hurricane hurricane ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Ort
    Bestensee bei Berlin
    Beiträge
    61
    Hmm, ich würde einfach die Inserts nacheinander machen. Also erst den 1nen, dann den anderen. Sorry aber ich hatte dieses Problem so noch nicht. Ich füll immer nur eine Tabelle mit verknüpfungen zu anderen (IDs)


    ciao Anke
     

  5. #5
    Avatar von danisan
    danisan danisan ist offline Rookie
    Registriert seit
    Apr 2004
    Ort
    Lehnitz (Brandenburg)
    Beiträge
    8
    Hei Anke,

    wenn du immer nur in eine Tabelle etwas einfügst, die aber über
    die IDs mit anderen verknüpft ist, gibst du die Relationen dann
    mit an? Also mit INNER JOINs oder so?

    Es ist schon merkwürdig, dass keiner dieses Problem zu haben scheint.
    Verstehe das net. Normalerweise müsste meine Abfrage funktionieren, aber
    das Programm macht mir immer einen Strich durch die Rechnung.

    Weiss echt nicht mehr weiter. Habe auch in sämtlichen anderen Foren
    angefragt, Suchmaschinen abegeklappert und die Programhilfen
    verwendet, aber es gibt einfach keine Antwort auf meine Frage, da meist
    nur erklärt wird, wie man neue Datensätze in eine Tabelle einfügt.
    Das funktioniert auch bei mir, aber sobald ich eine zweite Tabelle dazunehme,
    ist es aus.

    Trotzdem danke für deine Hilfe.
    Vielleicht weiss noch jemand anders Rat.

    LG
    Dani
     

  6. #6
    Avatar von hurricane
    hurricane hurricane ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Ort
    Bestensee bei Berlin
    Beiträge
    61
    Ich wähle zum Beispiel etwas in einer DropDownListe aus und habe dahinter einen Wert (ID), diesen Wert trage ich dann bei meinem Insert in die DB und so erhalte ich meine Verknüpfungen


    ciao Anke
     

  7. #7
    Avatar von danisan
    danisan danisan ist offline Rookie
    Registriert seit
    Apr 2004
    Ort
    Lehnitz (Brandenburg)
    Beiträge
    8
    Original geschrieben von hurricane
    Ich wähle zum Beispiel etwas in einer DropDownListe aus und habe dahinter einen Wert (ID), diesen Wert trage ich dann bei meinem Insert in die DB und so erhalte ich meine Verknüpfungen


    Danke, das hat schon geholfen.
    Aber bei mir klappt das alles net.
    Werde morgen nochmal meinen Dozenten fragen,
    weil wir dort über SQL-Befehle reden werden.

    Also, vielen Dank für die Müh.
    LG
    Dani
     

Ähnliche Themen

  1. MySql Abfrage - INSERT INTO - 2 Tabellen
    Von LxLehrling im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 28.03.09, 17:17
  2. MSSQL: Verbindung, Abfrage und Insert
    Von msycho im Forum PHP
    Antworten: 7
    Letzter Beitrag: 31.07.06, 11:23
  3. VB.NET 2003, SQL Befehl Insert
    Von HansJ im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 09.07.06, 20:46
  4. INSERT-INTO-Abfrage schlägt fehl
    Von mojitoweb im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 24.04.06, 18:46
  5. Insert - Abfrage mit TQuery - Borland Builder C++
    Von Mike_2005 im Forum Borland CBuilder und VCL
    Antworten: 2
    Letzter Beitrag: 28.12.04, 11:08