我有一些代码:
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不支持null参数,而规范断言它应该。
是否有人遇到此问题并找到了解决方法?
非常感谢
答案 0 :(得分:4)
你试过了吗?
DBNull.Value
答案 1 :(得分:1)
您是否尝试过发送DBNull.Value
或新Nullable<DateTime>()
?