Datentyp unverträglich (Date) bei 1 von 10 PCs

  • VB.NET

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

    Datentyp unverträglich (Date) bei 1 von 10 PCs

    Hallo,

    folgende Situation:

    Ich arbeite an einem Programm zum verwalten von Daten. Eigentlich eine recht simple Sache.
    Hinzufügen, Löschen, Bearbeiten... Funktioniert auch alles und auf (den meisten) andern PCs auch.

    Es handelt sich um eine Access Datenbank mit ca 9-10 Spalten. Davon sind
    die meisten für Strings, eine für die ID und eine für das Datum.


    Doch bei einem Computer kommt beim Hinzufügen folgende Fehlermeldung:

    System.Data.OleDb.OleDbException (0x80040E07): Datentypen in Kriterienausdruck unverträglich.

    Durch einige Tests bestätigt: Das Problem könnte darin liegen, dass er was anderes in die Date-Spalte hinzufügen will, als andere Computer.
    (Kurze Info: Es nutzt ein DateTimePicker)
    Es will statt 20.03.2012, 03/20/2012 hinzufügen, also die typisch-amerikanische Format.
    Daher habe ich einfach mal verschiedene Methoden probiert die mir einfielen, auch nochmal gegoogelt
    wie man das machen könnte - doch die Meldung bleibt.

    Er sagt er hätte einige Programme auf Englisch installiert (natürlich bewusst), aber Windows gehört nicht dazu.
    Datumsangaben von Windows werden auch "normal" angezeigt.

    Mir fallen 3 Möglichkeiten ein.
    A) Das falsche Format ist nicht das Problem. Aber was dann?
    B) Irgendeine Einstellung ist "ungünstig".
    C) Ich übersehe irgendwas.


    Wie bereits erwähnt, bei 10 Testcomputern (Win7 32bit, 64bit und Vista) kommt es nur bei ihm vor.
    Hat jemanden Ideen? Vielleicht steh ich einfach auf dem Schlauch.


    Danke!

    Grüße,
    Nicolas
    Willkommen im Forum. :thumbup:
    Welche Default-Spracheinstellung haben diese PC?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Default-Spracheinstellung: Soweit ich weiß überall deutsch.
    Du kannst bei der Konvertierung von DateTime in String auch angeben, in welcher Sprache die Ausgaben sein soll. Wenn
    Die Weise habe ich glaube ich noch nicht probiert.
    Auf welche Weise kann ich das angeben?

    VB.NET-Quellcode

    1. Dim dt = DateTime.Now
    2. Dim txt1 = dt.ToLongTimeString
    3. Dim txt2 = dt.ToLongDateString
    4. Dim txt3 = dt.ToShortTimeString
    5. Dim txt4 = dt.ToShortDateString
    6. Dim txt5 = dt.ToString
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Artentus schrieb:

    So wird das Datum immer im deutschen Format ausgegeben:
    Im Deutschen bitte "dd/MM/yyyy", Tag, Monat, Jahr.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für die Antworten!

    Tut mir Leid, dass ich jetzt erst antworte. Eine volle Woche...

    Ich habe das so wie oben beschrieben benutzt, also...
    ToString("dd/MM/yyyy", DateTimeFormatInfo.GetInstance(CultureInfo.CreateSpecificCulture("de-de")))

    Aber das gefällt ihm immernoch nicht. Datentypen in Kriterienausdruck unverträglich...
    jo, das ist ja auch totaler Crap
    Es gibt keinen Grund, Datum nach String umzuwandeln und dergleichen - sowas führt immer in Probleme mit verschiedenen System-Einstellungen.
    Verwende DataAdapter oder mindestens DbParameter verwenden.
    Speichere Datumse als Date ab - an keiner Stelle möge ein irgend geartetes .ToString auftauchen.