2010-01-22 38 views
2

我有一些代码:C#的executeQuery空值

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: A queryparameter can't be of type System.Object.

一些阅读中,我发现该ExecuteCommand不支持而空参数后规范声称它应该。

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

多谢

回答

4

你试过:

DBNull.Value 
1

你试过发送DBNull.Value或新Nullable<DateTime>()