vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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

 ThemaViews  AutorDatum
Aktualisieren aller Daten im DataTable eines DataSets481spatzimatzi18.06.17 16:47
Re: Aktualisieren aller Daten im DataTable eines DataSets239Manfred X18.06.17 18:21
Re: Aktualisieren aller Daten im DataTable eines DataSets242effeff18.06.17 18:27
Re: Aktualisieren aller Daten im DataTable eines DataSets230spatzimatzi18.06.17 19:29
Re: Aktualisieren aller Daten im DataTable eines DataSets229Manfred X19.06.17 11:28
Re: Aktualisieren aller Daten im DataTable eines DataSets223effeff19.06.17 12:41
Re: Aktualisieren aller Daten im DataTable eines DataSets225spatzimatzi19.06.17 12:22
Re: Aktualisieren aller Daten im DataTable eines DataSets213Manfred X19.06.17 15:48
Re: Aktualisieren aller Daten im DataTable eines DataSets221spatzimatzi19.06.17 13:03
Re: Aktualisieren aller Daten im DataTable eines DataSets215Manfred X19.06.17 16:08
Re: Aktualisieren aller Daten im DataTable eines DataSets214spatzimatzi19.06.17 14:05
Re: Aktualisieren aller Daten im DataTable eines DataSets218Manfred X19.06.17 15:59
Re: Aktualisieren aller Daten im DataTable eines DataSets216spatzimatzi19.06.17 16:15
Re: Aktualisieren aller Daten im DataTable eines DataSets214spatzimatzi19.06.17 16:34
Re: Aktualisieren aller Daten im DataTable eines DataSets222Manfred X19.06.17 17:10
Re: Aktualisieren aller Daten im DataTable eines DataSets219spatzimatzi19.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