Datentypenkonflikt bei Access Abfrage mit Visual Basic

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datentypenkonflikt bei Access Abfrage mit Visual Basic

    Hallo,

    Es handelt sich um eine Access Abfrage in Visual Basic.

    cmd.CommandText = "SELECT Summe FROM Tabellenname WHERE ID = '" & EPID & "'"
    Dim EPRealALt As Double = Convert.ToDouble(cmd.ExecuteScalar)

    Ich bekomme folgenden Fehler:
    System.Data.OleDb.OleDbException wurde nicht behandelt.
    Datentypenkonflikt in Kriterienausdruck.

    In der Access Datenbank besitzt Real den Datentyp double.
    In den Windows Systemeinstellungen habe ich von 0,00 auf 0.00 umgestellt.
    EPID ist eine integer Variable und besitzt den Wert 17
    In der Datenbank exisitiert ein Eintrag mit der ID 17 (integer)
    Summe ist vom typ double und besitzt den Wert 1.2

    Bitte helft mir, ich bin am verzweifeln.
    danke das funktioniert jetzt.

    hab noch eine frage zu parameters bei update:

    das funktioniert:
    cmd.CommandText = "UPDATE Tabellenname SET Summe = 5 WHERE ID = ?"
    cmd.Parameters.Add(New OleDbParameter("ID", OleDbType.Integer))
    cmd.Parameters("ID").Value = EPID
    cmd.ExecuteScalar()

    das funktioniert nicht:
    cmd.CommandText = "UPDATE Tabellenname SET Summe = ? WHERE ID = ?"
    cmd.Parameters.Add(New OleDbParameter("Summe", OleDbType.Integer))
    cmd.Parameters("Summe").Value = BBID
    cmd.Parameters.Add(New OleDbParameter("ID", OleDbType.Integer))
    cmd.Parameters("ID").Value = EPID
    cmd.ExecuteScalar()

    Fehler:
    OleDbException wurde nicht behandelt.
    Parameter?_2 hat keinen Standardwert.

    Funktioniert das mit den parameters bei SET nicht sondern nur bei WHERE, oder was machen ich falsch?
    Dein Ansatz hat eine enorme Anzahl an Unzulänglichkeiten - mit Datenbanken kann man um Welten einfacher umgehen. In Post#1 hast du ca. 10 Zeilen, und einen Fehler, den du nicht findest, um einen Select auszuführen, und in Post#5 das gleiche nochmal, nur um einen Update auszuführen.
    Da fehlen noch zwei, nämlich Insert und Delete
    Willst du wirklich auf diese Weise datenbänkern?
    Bedenke, dass eine DB mit leichtigkeit >10 Tabellen erhält, und die stehen gewöhnlich auch noch in Beziehung miteinander.
    Also wenn du mit jeder Tabelle so rummurksen willst,dann hast du gewaltig viel zu tun, es entstehen kilometerlange Codes, und wieviele Bugs darin herumkriechen ist kaum abschätzbar.

    VisualStudio beinhaltet mächtige Konzepte, um viel einfacher mit Datenbanken umzugehen.
    guggemol "Datenbank in 10 Minuten" auf Movie-Tuts, oder Forms over Data Videos

    Evtl. hast du aber auch eine Menge Fehlstellen in deinen Kenntnissen, ich hab die für Datenbänkerei erforderlichen Kenntnisse mal zusammengetragen: Datenverarbeitungs-Vorraussetzungen
    Untersuche jeden einzelnen weiterführenden Link, und checke, wies mit deinen Kenntnissen ausschaut.