我有一些代码:

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

但是,我也希望能够将空值传递给存储过程,以便它不使用它们。

现在,有了字符串,这很容易,我可以通过string.empt。但是,如果我想通过空日期,这是一个问题。

我显然尝试了:

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

但这无效,给出错误:

System.Exception:Queryparameter不能是类型System.Object。

经过一些阅读后,我发现executecommand不支持NULL参数,而规格则断言它应该。

有人遇到这个问题并找到了解决方法吗?

谢谢一堆

有帮助吗?

解决方案

你有没有尝试过:

DBNull.Value

其他提示

你尝试发送吗 DBNull.Value 或新的 Nullable<DateTime>() ?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top