Bonjour,
J'ai un petit souci avec des données stockées sous sqlServer lors de l'affectation aux membres d'une class.
Sous sql server j'ai une table contenant des champs qui peuvent être NULL
Coté C#, dans mon code, j'utilise un Dataset qui exécute une procédure stockée récupérant les données de la table pour initialiser ma class. Sur les champs Nullables en base, j'ai bien précisé à True la propriété AllowDBNull.
Or, à l'exécution du bout de code ci-dessous ça plante, il me ditIdem pour le champs montantTTC (type double)throw new global::System.Data.StrongTypingException("La valeur pour la colonne \'compteAttente\' dans la table \'Facture\' est DBNull.", e);
(Le code en rouge ne fonctionne pas)
Je n'arrive pas à trouver le bon format pour tester si la valeur renvoyée est DBNULL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public List<FactureDao> GetFactureList() { _factureDal = new FactureDAL(); List<FactureDao> mesFactures = new List<FactureDao>(); foreach (var myRow in _factureDal.GetFactureList()) { FactureDao maFactureDao = new FactureDao(); maFactureDao._id = myRow.idfacture; maFactureDao._numeroFacture = myRow.numfacture; if (myRow.montantTTC == DBNull.Value) //cannot apply operator '==' to operands of type double float etc .. maFactureDao._montantFacture = 0; else maFactureDao._montantFacture = (float)myRow.montantTTC; maFactureDao._dateFacture = myRow.dateFacture; maFactureDao._dateSaisie = myRow.dateSaisie; //if (DBNull.Value.Equals(myRow.compteAttente.ToString())) //if (string.IsNullOrEmpty(myRow.compteAttente)) //if (System.DBNull.Value == myRow.compteAttente) if (myRow.compteAttente is DBNull) maFactureDao.CompteAttente = null; else maFactureDao._compteAttente = myRow.compteAttente; maFactureDao._information = myRow.info; maFactureDao._statut = myRow.statut; mesFactures.Add((maFactureDao)); } return mesFactures; }
Quelqu'un aurait une idée ?
Merci d'avance
Partager