DataSet.Register() wirft Exceptions

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von OliverSte.

    DataSet.Register() wirft Exceptions

    Hi,

    hab ein paar Felder im DatasSet umbenannt und jetzt startet die Solution nicht mehr :(

    System.Data.ConstraintException: "Einschränkungen konnten nicht aktiviert werden. Mindestens eine Zeile enthält Werte die die Einschränkungen non-null, unique or foreign-key verletzen."

    An den Beziehungen hatte ich nichts geändert, auch nicht die Feldnamen.
    Ich kann jetzt im Lokal Fenster auf alles was gerade initialisiert ist zugreifen, aber das ist ganz schön viel.
    Wie kann ich denn herausfinden, welche Zeile genau das Problem verursacht?
    Danke.

    Viele Grüße,
    Oliver
    Ich war schon dabei, was zu basteln, bis ich darauf stieß, dass ggf. schon folgendes reicht:

    VB.NET-Quellcode

    1. Try
    2. 'DataSet.Register() <= Methode von EDR, oder?
    3. Catch DCEx As Data.ConstraintException
    4. Dim FailedRows = DataSetName.DataTableName.GetErrors()
    5. Stop
    6. End Try

    Und dann eben mit IntelliSense FailedRows anschauen. Vielleicht reicht das ja schon.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hi @VaporiZed,

    na klar, von EDR.
    Das Catch kommt nicht zum Zuge :( Meine Schuld, denn das Proggi schmiert tatsächlich später ab, beim DataSet.Fill(). Ich mache hier mal Try Catch ...
    Au weia, da habe ich mich aber selbst gedingelt. Mein Programm lädt eine alte XML ins DataSet, darin sind die Felder nicht umbenannt ...

    Nichtsdestotrotz, vielen Dank für dein Hilfe, denn mit dem Try-Catch bin ich dahinter gekommen! Super, ich freu mich ^^
    mein DatasetViewer kennste schon?
    Weil mit dem kann man auch kaputte Datasetse untersuchen.
    Die Exception tritt ja nur in dem Moment auf, wenn man EnforceConstraint=True setzt. Lässt man das auf false, dann kann der Viewer das immer noch anzeigen. - und dabei markiert er sogar Fehlerzeilen.
    Musste halt bischen rumwursteln, wie de das hinkriegst, es zu laden, ohne die Constraints zu aktivieren.