2

我有一些代码:

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

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

现在使用字符串这很容易,我只需传递 String.Empty 就可以了。但是,如果我想传递空日期,这是一个问题。

我显然尝试过:

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

但这不起作用,给出错误:

System.Exception:查询参数不能是 System.Object 类型。

经过一番阅读,我发现 ExecuteCommand 不支持空参数,而规范断言它应该。

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

谢谢一堆

4

2 回答 2

4

你有没有尝试过:

DBNull.Value
于 2010-01-22T12:45:26.803 回答
1

您是否尝试过发送DBNull.Value或新的Nullable<DateTime>()

于 2010-01-22T12:46:25.707 回答