2010-01-22 60 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>()