Hallo,,
ich habe bei einem meiner Formulare ein Problem was ich mir absolut nicht erklären kann. In meiner Datenbank gibt es eine Tabelle für Auftraggeber mit ca 20 Feldern. Diese sind in einem Formular an die entsprechenden Steuerelemente (Textbox, Combobox usw) gebunden.
Bei den Daten handelt es sich um unsere Auftraggeber, welche wir zwischen interne und externe unterscheiden. Manche Felder sind nicht für beide Auftraggeberarten relevant, diese setze ich je nach Art auf Enabled = False. Diese sind in der Datenbank auch nicht als NotNull-Felder markiert, sie können also leer bleiben.
Bei 2 Feldern (OEKurz, OELang), die in diese Kategorie fallen habe ich allerdings Probleme. Diese Felder sind in der Datenbank mit VarChar(45) hinterlegt, also Textfelder. Im Formular benutze ich allerdings Comboboxen, welche die bisher eingegeben Werte in diesen Feldern als Auswahlmöglichkeit enthalten.
Bei internen Auftraggebern muss dieses Feld befüllt werden, bei externen nicht. Hier sind die Comboboxen also deaktiviert. Lege ich jetzt einen neuen Datensatz an (egal ob interner oder externer Auftraggeber) funktioniert alles. Bearbeite ich dann allerdings den Datensatz eines externen Auftraggebers bekomme ich folgende Fehlermeldung:
Anbei noch der Code, welchen ich zum speichern benutze. Dieser ist auf das wesentliche reduziert um alle anderen potenziellen Fehlerquellen auszuschließen:
Wenn der Fehler auftritt bleibt der Code in Zeile 6 stehen. Da ich immer nur die Bearbeitung eines Datensatzes zulasse und auf diesem Formular auch nur die eine Tabelle verwende kann sich das "HasChanges"-Event auf keine andere Tabelle beziehen.
Kurz zusammengefasst: Bei zwei Tabellenfeldern, welche NULL-Werte enthalten können klappt das Aktualisieren des Datensatzes nicht, wenn diese NULL sind. Beim anlegen gibt es allerdings keine Probleme.
Vielleicht hat von euch einer eine Idee woran das liegen könnte.
Gruß, André
ich habe bei einem meiner Formulare ein Problem was ich mir absolut nicht erklären kann. In meiner Datenbank gibt es eine Tabelle für Auftraggeber mit ca 20 Feldern. Diese sind in einem Formular an die entsprechenden Steuerelemente (Textbox, Combobox usw) gebunden.
Bei den Daten handelt es sich um unsere Auftraggeber, welche wir zwischen interne und externe unterscheiden. Manche Felder sind nicht für beide Auftraggeberarten relevant, diese setze ich je nach Art auf Enabled = False. Diese sind in der Datenbank auch nicht als NotNull-Felder markiert, sie können also leer bleiben.
Bei 2 Feldern (OEKurz, OELang), die in diese Kategorie fallen habe ich allerdings Probleme. Diese Felder sind in der Datenbank mit VarChar(45) hinterlegt, also Textfelder. Im Formular benutze ich allerdings Comboboxen, welche die bisher eingegeben Werte in diesen Feldern als Auswahlmöglichkeit enthalten.
Bei internen Auftraggebern muss dieses Feld befüllt werden, bei externen nicht. Hier sind die Comboboxen also deaktiviert. Lege ich jetzt einen neuen Datensatz an (egal ob interner oder externer Auftraggeber) funktioniert alles. Bearbeite ich dann allerdings den Datensatz eines externen Auftraggebers bekomme ich folgende Fehlermeldung:
System.Data.DBConcurrencyException
{"Parallelitätsverletzung: Der UpdateCommand hat sich auf 0 der erwarteten 1 Datensätze ausgewirkt."}
Anbei noch der Code, welchen ich zum speichern benutze. Dieser ist auf das wesentliche reduziert um alle anderen potenziellen Fehlerquellen auszuschließen:
Wenn der Fehler auftritt bleibt der Code in Zeile 6 stehen. Da ich immer nur die Bearbeitung eines Datensatzes zulasse und auf diesem Formular auch nur die eine Tabelle verwende kann sich das "HasChanges"-Event auf keine andere Tabelle beziehen.
Kurz zusammengefasst: Bei zwei Tabellenfeldern, welche NULL-Werte enthalten können klappt das Aktualisieren des Datensatzes nicht, wenn diese NULL sind. Beim anlegen gibt es allerdings keine Probleme.
Vielleicht hat von euch einer eine Idee woran das liegen könnte.
Gruß, André