Bonjour

Le forum WebService étant en maintenance, je post ici.

Je veut tester à partir de mon client des valeurs de base de données pour éviter les erreurs de DbNull. Jusqu'à présent j'avais les test intégrés dans le code et ça marchait. Le problème est que j'ai ces fonction dans plusieurs sources et donc, je veux standardiser tout ça.

J'ai donc créé un web service et migré mes fonctions de test à l'intérieur. Oui, mais voilà, justement quand j'ai une valeur dbNull qui passe, j'ai une erreur de serialisation XML.

Voici le code d'une des fonction:

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
 
 
        [WebMethod]
        public string testDbNULLString(dynamic data)
        {
            string castValue;
 
            if (DBNull.Value.Equals(data) || data == null)
            {
                castValue = "";
            }
            else
            {
                castValue = data;
            }
 
            return castValue;
 
        }
Un appel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 VMWebservice.testDbNULLString(ds.Tables("data").Rows(i).Item("strCurrentStatusRC"))
Et l'erreur générée si je passe effectivement dbNull :

Une exception de type 'System.ServiceModel.CommunicationException' s'est produite dans mscorlib.dll mais n'a pas été gérée dans le code utilisateur

Informations supplémentaires : Une erreur s'est produite lors de la désérialisation du corps du message : 'Erreur lors de la génération du document XML.'. Pour plus d'informations, consultez InnerException.
Y a-t-il un moyen de faire ça?