Ik heb een probleempje met m'n WinForms applicatie:
In m'n applicatie maak ik gebruik van databinding om de gegevens die zich in een typed dataset bevinden op het scherm te tonen en vice versa.
Nu heb ik in die typed dataset een aantal velden die nullable zijn. Bepaalde van die velden toon ik in een combobox.
Als zo'n veld null is, dan mag er in de combobox niets geselecteerd zijn. Daarom heb ik bv. in m'n XSD voor dat veld volgend attribuut geplaatst:
Dit zorgt er dus voor dat, als dat veld DBNull.Value bevat, ik -1 terugkrijg. Op die manier kan ik makkelijker databinden.
Tot voor kort werkte dit echter allemaal perfect, als ik checkte op dat veld of het null bevatte (dmv IsxxxxNul() method), kreeg ik ook NULL terug als dit het geval was.
Echter, ik heb nu voor het saven deze regel code erbij geplaatst:
Deze regel heb ik nodig omdat ik er zeker van wil zijn dat alle wijzigen zich in de dataset bevinden (dit was nl. niet altijd het geval).
Echter, wat gebeurt er nu: als ik Save, dan krijg ik een foreign key constraint violation.
Wat blijkt nu: m'n IsxxxxNull() check werkt niet meer naar behoren; ipv dat ik 'true' terugkrijg, krijg ik false terug, en bijgevolg wil m'n data access component nu -1 inserten in dat veld.
Kan iemand mij verklaren waarom die codegen:nullValue blijkbaar de mist in gaat als ik die EndCurrentEdit aanroep ?
In m'n applicatie maak ik gebruik van databinding om de gegevens die zich in een typed dataset bevinden op het scherm te tonen en vice versa.
Nu heb ik in die typed dataset een aantal velden die nullable zijn. Bepaalde van die velden toon ik in een combobox.
Als zo'n veld null is, dan mag er in de combobox niets geselecteerd zijn. Daarom heb ik bv. in m'n XSD voor dat veld volgend attribuut geplaatst:
code:
1
| codegen:nullValue=-1 |
Dit zorgt er dus voor dat, als dat veld DBNull.Value bevat, ik -1 terugkrijg. Op die manier kan ik makkelijker databinden.
Tot voor kort werkte dit echter allemaal perfect, als ik checkte op dat veld of het null bevatte (dmv IsxxxxNul() method), kreeg ik ook NULL terug als dit het geval was.
Echter, ik heb nu voor het saven deze regel code erbij geplaatst:
code:
1
| this.BindingContext[myDataSet].EndCurrentEdit(); |
Deze regel heb ik nodig omdat ik er zeker van wil zijn dat alle wijzigen zich in de dataset bevinden (dit was nl. niet altijd het geval).
Echter, wat gebeurt er nu: als ik Save, dan krijg ik een foreign key constraint violation.
Wat blijkt nu: m'n IsxxxxNull() check werkt niet meer naar behoren; ipv dat ik 'true' terugkrijg, krijg ik false terug, en bijgevolg wil m'n data access component nu -1 inserten in dat veld.
Kan iemand mij verklaren waarom die codegen:nullValue blijkbaar de mist in gaat als ik die EndCurrentEdit aanroep ?
https://fgheysels.github.io/