vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 12 bzw. 19 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2017
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Aktualisieren aller Daten im DataTable eines DataSets 
Autor: spatzimatzi
Datum: 18.06.17 16:47

Hallo,
habe ein Problem und brauche eure Hilfe.

Derzeitige Situation:
Beim Start des Programmes wird eine Form mit einem DataGridView aufgerufen. Geladen werden die Daten mit Fill des DataAdapters und einer StoredProcedure
cmd.CommandText = "usp_SelectNotizenDC"
intAnz_Notizen = da.Fill(dsDatenPool, "Notizen")
Möchte der Anwender die Daten ändern, dann wird über die Auswahl einer Zeile im DataGridview eine neue Form aufgerufen und die Daten mit Hilfe des vorliegenden Schlüssels von der Datenbank gelesen
Auch dies geschieht mit eigenständigen Adaptern und StoredProcedure
Veränderungen an den Daten werden beim Verlassen der 2. Form direkt in der Datenbank hinterlegt und in der DataTable "Notizen" durchgeführt. Den Erfolg der Änderung sieht der Anwender direkt in seinem DataGridView der 1. Form.

Damit der 2. Anwender die Änderung erkennt, muss eine Aktualisierung seiner Daten stattfinden.
Dabei wird die Fill-Methode, die im Load-Ereigniss das DataGridView gefüllt hat, nochmals ausgeführt.
Die Anpassung wird vollzogen. Man kann in der Aktualisierung auch nur die Records lesen, die ab einem bestimmten Zeitpunkt Veränderungen erfahren haben. Es funktioniert auch zeitgesteuert. Z.B. alle 2 Minuten. Das läuft einwandfrei.
Sollte es ein besseres Verfahren geben, dann würde ich mich über Informationen freuen.

Nun zu meinem Problem:
Das Problem tritt beim Einfügen eines neuen Datensatzes auf.
Wird beim Einfügen die 2. Form verlassen, dann wird der neue Datensatz in die Datenbank geschrieben und die Schlüsselnummer wird zurückgegeben.
Danach wird auch die DataTable "Notizen" mit einem neuen Datensatz gefüllt. Dafür wird die Schlüsselnummer verwendet. Auch das geschieht noch einwandfrei.

Der Fehler tritt bei der Aktualisierung (wenn alle Änderungen eingespielt werden) auf.
Der Fehler lautet:
System.Data.ConstraintException: Einschränkungen konnten nicht aktiviert werden.
Mindestens eine Zeile enthält Werte die die Werte für die Einschränkungen non-null, unique or foreign-key verletzen.

Der eingefügte Datensatz erscheint im DataGridview 2 mal. Bei beiden Records wird ein roter Kreis mit einem Ausrufezeichen beim Schlüsselfeld eingeblendet. Deshalb vermute ich, dass der Fehler im Schlüsselfeld liegt.
Der Tooltipp des roten Kreises hat folgenden Inhalt:
Die Spalte 'NotizenIdent' hat die Einschränkung, dass sie eindeutig sein muss. Der Wert ... ist bereits vorhanden

Ich verstehe, dass der Schlüssel nur einmal vorhanden sein darf.
Da die veränderten Records aus der Datenbank direkt aktualisiert werden, hatte ich gedacht, dass geht auch mit den neuen Records.
Habe auch experimentiert mit
- da.FillSchema(dsDatenPool, SchemaType.Source, "Notizen")und
- da.MissingSchemaAction = MissingSchemaAction.AddWithKey
damit die Informationen des Schlüsselfeldes der Tabelle im DataSet bekannt sind.
Aber keine Änderung.

Jetzt die berühmte Frage: Was mache ich falsch? Habe ich ein Verständnisproblem?

Ich freue mich schon jetzt über zahlreiche Informationen und Hinweise

Danke
spatzimatzi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

Neue Version! sevEingabe 3.0 (für VB6 und VBA)
Das Eingabe-Control der Superlative! Noch besser und noch leistungsfähiger!
Jetzt zum Einführungspreis       - Aktionspreis nur für kurze Zeit gültig -
 ThemaViews  AutorDatum
Aktualisieren aller Daten im DataTable eines DataSets373spatzimatzi18.06.17 16:47
Re: Aktualisieren aller Daten im DataTable eines DataSets175Manfred X18.06.17 18:21
Re: Aktualisieren aller Daten im DataTable eines DataSets180effeff18.06.17 18:27
Re: Aktualisieren aller Daten im DataTable eines DataSets166spatzimatzi18.06.17 19:29
Re: Aktualisieren aller Daten im DataTable eines DataSets163Manfred X19.06.17 11:28
Re: Aktualisieren aller Daten im DataTable eines DataSets159effeff19.06.17 12:41
Re: Aktualisieren aller Daten im DataTable eines DataSets160spatzimatzi19.06.17 12:22
Re: Aktualisieren aller Daten im DataTable eines DataSets149Manfred X19.06.17 15:48
Re: Aktualisieren aller Daten im DataTable eines DataSets156spatzimatzi19.06.17 13:03
Re: Aktualisieren aller Daten im DataTable eines DataSets153Manfred X19.06.17 16:08
Re: Aktualisieren aller Daten im DataTable eines DataSets150spatzimatzi19.06.17 14:05
Re: Aktualisieren aller Daten im DataTable eines DataSets151Manfred X19.06.17 15:59
Re: Aktualisieren aller Daten im DataTable eines DataSets154spatzimatzi19.06.17 16:15
Re: Aktualisieren aller Daten im DataTable eines DataSets151spatzimatzi19.06.17 16:34
Re: Aktualisieren aller Daten im DataTable eines DataSets159Manfred X19.06.17 17:10
Re: Aktualisieren aller Daten im DataTable eines DataSets159spatzimatzi19.06.17 17:32

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2017 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel