none
MySQL Connector übernimmt nicht die Autoincrement Eigenschaft einer Spalte RRS feed

  • Allgemeine Diskussion

  • Hallo,

    ich verwende MySQL bei eriner Applikation, die ich mit VS 2013 Ultimate und MySQL für Visual Studio 1.2.3 entwickle. Bei allen Tabellen gibt es einen Primärschlüssel vom Typ Unsigned Integer und mit dem Attribut Autoincrement.

    Wenn ich die Tabellen in einen Typed Dataset einbinde und im Dataset-Designer kontrolliere, muss ich feststellen, dass keine der Schlüsselspalten im Dataset das Attribut hat.

    Wenn ich dann versuche, das Attribut im Code zu setzen, kommt folgende kryptische Meldung:

    "Ein Ausnahmefehler des Typs "System.Data.InvalidConstraintException" ist in System.Data.dll aufgetreten.
    Zusätzliche Informationen: Übergeordnete Spalten und untergeordnete Spalten haben keine Spalten mit Typübereinstimmung." Eine weiterführende Erklärung dazu lautet "Diese Ausnahme wird durch den nicht korrekten Versuch ausgelöst, eine Beziehung zu erstellen oder darauf zuzugreifen."

    Seltsam nur, dass MySQL Workbench die Tabellen-Definitionen problemlos erstellt und einschließlich allen Fremdschlüssel-Relationen in der Datenbank anlegt.

    Ich wäre dankbar für alle Hinweise, die dieses seltsame Verhalten beseitigen.

    LG Peter

    Samstag, 7. Februar 2015 08:31

Alle Antworten

  • Hallo Peter,

    Gibt es eine Änderung, wenn Du mit INT anstatt UINT für den Primärschlüssel im DataSet-Designer versuchst? Folgender Thread bietet ein Beispiel (wenn auch mit Fremdschlüssel): AutoIncrement and DataRelation in a c# typed dataset (from mysql)

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Sonntag, 8. Februar 2015 08:28
    Moderator
  • Hallo Dimitar,

    erstmal danke wieder einmal für deine Hilfe und sorry, dass es mit meiner Antwort ein wenig gedauert hat.

    Ich habe versucht, zuerst in der Datenbank gezielt ein paar Datentypen von UInt nach Int zu ändern. Da aber in einer Relationalen Datenbank alles irgendwie mit allem zusammenhängt, habe ich schließlich die Nerven geworfen und die komplette Datenbank gedroppt (einschließlich einiger guter Testdaten), direkt im Modell alle Schlüsseldatentypen von UInt auf Int geändert und die Datenbank neu erstellt.

    Nur, um festzustellen, dass sich nichts geändert hat: Autoincrement ist im Dataset überall False und lässt sich händisch im Designer nicht ändern. Ein Versuch, es im Code zu ändern führt zu der Exception, dass die davon abhängigen Daten einen anderen Datentyp haben.

    Sieht so aus, als müsste man VS 2013 als Entwicklungswerkzeug vergessen und sich anderen Werkzeugen zuwenden. Ich jedenfalls bin mit meinem Latein (und auch mit meinen Nerven) am Ende...

    LG Peter

    Sonntag, 8. Februar 2015 19:20