Je suis en train de coder un projet sous C# et je rencontre des problèmes. Je vais donner une brève description de mon formulaire:DataBinding avec un DataRow - problèmes
Il a une vue de données sur la moitié inférieure du formulaire avec une sélection de ligne unique, et est en lecture seule. Dans la moitié supérieure du formulaire, j'ai divers composants qui sont databound à la ligne sélectionnée sur le datagridview. Je l'ai fait parce qu'il y avait trop de colonnes dans la base de données pour montrer dans la vue de données sans sérieusement encombrer l'interface utilisateur. Cela fonctionne correctement et les événements de formatage et d'analyse sont appelés correctement.
J'ai un bouton Ajouter un nouvel enregistrement qui redéfinit les commandes de la moitié supérieure à une nouvelle ligne de données (qui ne fait pas encore partie de la base de données) et c'est là que j'ai des problèmes. Tout d'abord, lors de la liaison directe à une base de données, il semble que les contrôles ne sont pas aussi heureux avec les valeurs DBNull comme ils le sont lors de la liaison à un datatable. Mais c'est très bien, j'ai juste assigné des valeurs par défaut à la nouvelle ligne avant de la lier. Cependant, il semble que les événements Format et Parse ne soient pas déclenchés lorsqu'ils sont liés directement à une ligne pour une raison quelconque, et je ne peux pas expliquer pourquoi. La principale raison pour laquelle j'ai besoin de ceci est que j'ai une colonne de valeur Date qui doit idéalement être nulle (vide à partir d'une perspective UI) donc j'attribue le DateTime.MinValue comme valeur par défaut sur la nouvelle ligne et je recherche cela sur le format/analyser l'événement et faire les conversions nessessary. Je suppose que ma question principale est pourquoi la liaison à une datarow soulève des exceptions DBNull lorsque la liaison à une datatable avec les mêmes valeurs nulles dans les mêmes colonnes ne déclenche aucune exception et les contraintes de colonne ont 'Allow Nulls'. Ma question alternative est la suivante: pourquoi les événements Format/Parse ne sont-ils pas déclenchés lorsqu'un composant est lié à un datarow?
Pas de problème, cela est tout à fait une vieille question maintenant et ont depuis découvert la façon dont les datatables manipulent des nulls est un peu génial, je suppose que tehy ont été conçus avant .NET avait des types/génériques Nullable. En tant que tel, j'ai depuis déménagé loin d'eux et sur POCOs et cela a soulagé une grande partie de la pression. – Marlon