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

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

VB.NET - Ein- und Umsteiger
Re: DBCurrencyException im DataSet 
Autor: Angelus19
Datum: 25.03.10 13:12

Ok.
Aber dann verstehe ich das nicht ganz. Wie sollten denn die Werte in der Datenbank geändert sein? Wenn der Benutzer Werte im DGV umschreibt dann ist doch klar das dann etwas geändert wurde. Da ich momentan als einziger auf die DB zugreife können keine anderen Änderungen auftreten.

Wie gesagt, das Problem tritt nur auf wenn eine der Spalten als Decimal definiert ist.
Es könnte doch sein das dass DGV bei der automatischen Erzeugung der Spalten bei den Zahlenwerten irgend etwas falsch macht?

Angelus19
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

DBCurrencyException im DataSet 
Autor: Angelus19
Datum: 25.03.10 11:34

Hallo Zusammen,

für Testzwecke habe ich eine Access2003 Datenbank nur mit Textspalten erzeugt.
Diese Datenbank habe ich an ein DataGridView gebunden (VB2008 Express). Soweit, so gut. Ich kann Daten ändern, hinzufügen und löschen.

Nun möchte ich aber dass ein Benutzer nur gültige Werte (zB. nur Zahlen) in die Spalten schreiben kann. Also habe ich bestimmte Spalten in der DB als Zahl (Decimal, 2 Nachkommastellen, Standardwert 0) definiert. Durch FillSchema erhält das DGV alle notwendigen Informationen.
Beim Update des Adapters wird nun aber immer DBCurrencyException ausgelöst. Und zwar immer dann wenn ich Zahlenspalten im DataSet habe.
Kann sich das jemand erklären?

Angelus19
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBCurrencyException im DataSet 
Autor: ModeratorDaveS (Moderator)
Datum: 25.03.10 11:48

Meinst du vielleicht DBConcurrencyException?

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBCurrencyException im DataSet 
Autor: ModeratorRalfE (Moderator)
Datum: 25.03.10 12:07

Das DataSet aktualisiert die Daten anhand der Óriginaldaten (ein DataSet kennt ja mehrere Stati: Original, Bearbeitet, Gelöscht etc.). Wenn beim Versuch des Updates die Daten in der Datenbank bereits geändert worden, dann wird die von Dave genannte Exception geworfen.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBCurrencyException im DataSet 
Autor: Angelus19
Datum: 25.03.10 12:11

Entschuldigung,

natürlich meine ich DBConcurrencyException.
Ich habe inzwischen ein wenig gegoogelt. Könnte es ein Problem mit dem Decimalwert in Acces und den unter .NET sein?

Angelus19
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBCurrencyException im DataSet 
Autor: ModeratorDaveS (Moderator)
Datum: 25.03.10 12:29

Es hat nichts mit Dezimal oder Währung zu tun. Concurrency bedeutet Gleichzeitigkeit. Und Ralf hats kurz erklärt.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBCurrencyException im DataSet 
Autor: ModeratorDaveS (Moderator)
Datum: 25.03.10 14:05

Es ist denkbar, dass ein Dezimalwert mit Nachkommastellen beim Einlesen anders abgeschnitten wird (urpüngliches DataTable-Feld) als in der DB vorhanden. Wenn du die DB Assistenten benutzt hast um TableAdapter usw anzulegen werden bei .Update() standardmässig die alten Werten mit den aktuellen Werten in der DB verglichen. Bei Fliesskomma, manchen Datumsformatten und eventuell bei Decimal könnte das dann als Konflikt erkannt werden.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBCurrencyException im DataSet 
Autor: Angelus19
Datum: 25.03.10 14:31

Ja genau. An so etwas hatte ich gedacht.
Würde sich das denn dadurch beheben lassen, dass ich für die Spaltentypen einen anderen Typ definiere. Also z.B. Single oder Double?

Die Spalten sollen Werte für Volumen und Dichte endhalten, so dass ich bei einer Abfrage der DB die Masse berechnen kann.

Angelus19
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBCurrencyException im DataSet 
Autor: ModeratorDaveS (Moderator)
Datum: 25.03.10 14:45

Ich würde Double probieren, ist ja eher ein Standard.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBConcurrencyException im DataSet 
Autor: Angelus19
Datum: 26.03.10 10:02

Hallo DaveS und RalfE,

Double hat funktioniert. Damit treten die genannten Probleme nicht mehr auf.

Danke.

Angelus19
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: DBConcurrencyException im DataSet 
Autor: ModeratorFZelle (Moderator)
Datum: 26.03.10 17:18

Das verhalten ist "einfach" erklärbar.

Wenn du bei der Spaltenbeschreibung im designer oder von hand "vergisst" explizit die Anzahl der
Nachkommastellen von Decimal anzugeben, nimmt ADO.NET 0 ( null ) an.
aus 2,1234 wird also 21234,0 was dann beim vergleichen mit den Ursprungswerten in der DB
zu besagter Exception ( oder anderen hier berichteten Fehlern mit Decimal ) führt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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