Announcement

Collapse
No announcement yet.

Fehler bei ExecuteNonQuery-Anweisung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler bei ExecuteNonQuery-Anweisung

    Hallo zusammen,
    möchte gerne die Daten aus meiner Maske direkt in die Tabelle schreiben, ohne Einsatz von DataSet und DataAdapter. Beim Versuch nun u.a. einen neuen Datensatz einzufügen, bekomme ich einen Syntaxfehler in der Insert-Anweisung. Leider komme ich nicht auf den Fehler. Vielleicht kann mir jemand weiterhelfen....

    P.S. Verwende VB.NET mit MS-Access

    Anbei der Quellcodeauszug...

    Dim SQL As String = "INSERT INTO Anwendungseinstellungen([UserID], Level, ListenKZ, DetailKZ, DatumKZ, UhrzeitKZ, ListoptKZ) Values(@userid, @level, @listenkz, @detailkz, @datumkz, @uhrzeitkz, @listoptkz)"

    Dim Cmd As OleDbCommand = New OleDbCommand(SQL, conn)

    Cmd.Parameters.Add("@userid", TB_ID.Text)
    Cmd.Parameters.Add("@level", _level)
    Cmd.Parameters.Add("@listenkz", _liste)
    Cmd.Parameters.Add("@detailkz", _detail)
    Cmd.Parameters.Add("@datumkz", _datum)
    Cmd.Parameters.Add("@uhrzeitkz", _uhrzeit)
    Cmd.Parameters.Add("@listoptkz", _listanz)

    Cmd.ExecuteNonQuery()

  • #2
    Hallo,

    wenn die <b>Parameters</b>-Kollektion von Hand gefüllt wird, muss zuerst der Parameter mit seinem Datentyp deklariert werden:
    <code>
    '
    'OleDbCommandINSERT
    '
    Me.OleDbCommandINSERT.CommandText = "INSERT INTO BILDER (Name, Bild) VALUES (Name, Bild)"
    Me.OleDbCommandINSERT.Connection = Me.OleDbConnection1
    Me.OleDbCommandINSERT.Parameters.Add(New System.Data.OleDb.OleDbParameter("Name", System.Data.OleDb.OleDbType.VarWChar))
    Me.OleDbCommandINSERT.Parameters.Add(New System.Data.OleDb.OleDbParameter("Bild", System.Data.OleDb.OleDbType.VarBinary))
    </code>
    Erst dann wird der Parameter-Wert über die <b>Value</b>-Eigenschaft übergeben:
    <code>
    OleDbCommandINSERT.Parameters(0).Value = TextBoxNAME.Text
    OleDbCommandINSERT.Parameters(1).Value = aBLOb
    Dim iResult As Integer
    iResult = OleDbCommandINSERT.ExecuteNonQuery()
    </code&gt

    Comment


    • #3
      Hallo Herr Kosch,
      danke für Ihen Hinweis. Leider hat Ihr Beispiel bei mir auch nicht funktioniert. Daher habe ich mir ein Beispiel aus einem Fachbuch genommen, welches mit der Nordwind Datenbank funktioniert. Habe dann die Datenbank mit meiner ausgetauscht und den Update-Befehl entsprechend um die neuen Felder aktualisiert. Daraufhin habe ich wieder die gleiche Fehlermeldung bekommen. Aber daran habe ich gesehen, dass es nicht am Update-Befehl als solches gelegen haben konnte. Beim Löschen der Tabelle zeigte mir dann Access auf, dass noch eine Beziehung zu meiner Tablle bestehen würde, welche mir aber nicht angezeigt wurde inder Beziehungsübersicht von Access. Nach dem Neuanlegen der Tabelle hat alles wunderbar funkioniert.

      Gruss Gromadeck

      Comment

      Working...
      X