Question

J'ai un code:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", "19601023",
             }

Cependant, je veux aussi être en mesure de transmettre des valeurs vides à la procédure stockée de sorte qu'il ne fonctionne tout simplement pas les utiliser.

Maintenant, avec les chaînes cela est facile, je peux passer String.Empty et cela fonctionnera. Mais si je veux passer les dates vides ce problème.

J'ai évidemment essayé:

using (OAZISDBDataContext ctx = new OAZISDBDataContext())
            {                    
                IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
                    "test", null,
             }

Mais cela ne fonctionne pas », donne l'erreur:

  

System.Exception. Un queryparameter ne peut pas être de type System.Object

Après quelques lectures, j'ai découvert que le ExecuteCommand ne supporte pas les paramètres nuls alors que la spécification affirme qu'il devrait.

Quelqu'un at-il rencontré ce problème et a trouvé une solution de contournement?

Merci un groupe

Était-ce utile?

La solution

Avez-vous essayé:

DBNull.Value

Autres conseils

Avez-vous essayé d'envoyer DBNull.Value ou une nouvelle Nullable<DateTime>()?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top