C# ExecuteQuery NULL Valor
-
22-09-2019 - |
Pergunta
Eu tenho algum código:
using (OAZISDBDataContext ctx = new OAZISDBDataContext())
{
IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
"test", "19601023",
}
No entanto, também quero passar valores vazios para o procedimento armazenado para que ele não os use.
Agora, com strings, isso é fácil, eu posso simplesmente passar por String.Empty e funcionará. No entanto, se eu quiser passar datas vazias, isso é um problema.
Eu obviamente tentei:
using (OAZISDBDataContext ctx = new OAZISDBDataContext())
{
IEnumerable<DBContactDetail> details = ctx.ExecuteQuery<DBContactDetail>("exec [dbo].[zna_contact] {0}, {1}",
"test", null,
}
Mas isso não funciona, dá o erro:
System.Exception: Um queryparameter não pode ser do tipo System.Object.
Depois de algumas leituras, descobri que o ExeconCommand não suporta parâmetros nulos, enquanto a especificação afirma que deveria.
Alguém encontrou esse problema e encontrou uma solução alternativa?
Muitíssimo obrigado
Solução
Você tentou:
DBNull.Value
Outras dicas
Você já tentou enviar DBNull.Value
ou novo Nullable<DateTime>()
?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow