Pregunta

Tengo algún código:

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

Sin embargo, también quiero poder pasar valores vacíos al procedimiento almacenado para que simplemente no los use.

Ahora con cadenas esto es fácil, puedo pasar una cadena. Sin embargo, si quiero pasar fechas vacías, este es un problema.

Obviamente lo intenté:

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

Pero esto no funciona, da el error:

System.Exception: una consulta no puede ser de tipo System.Object.

Después de una lectura, descubrí que Execessecommand no admite parámetros nulos, mientras que la especificación afirma que debería.

¿Alguien ha encontrado este problema y ha encontrado una solución?

Gracias un montón

¿Fue útil?

Solución

Has probado:

DBNull.Value

Otros consejos

Has intentado enviar DBNull.Value o nuevo Nullable<DateTime>() ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top