2009-09-30 63 views
0

我有一個字符串屬性可能或不可爲空。如何將可空字符串傳遞給來自C的SP#

db.AddInParameter(InsertMessageDetailCommand, "MyParam", System.Data.DbType.String, this.myParam); 

領域在SP定義如下:

@MyParam nvarchar(50) 

我怎樣才能改變SP允許空值

我就用這個調用傳遞給SP ,如果參數值爲空,稍後在SP中將一個空值插入數據庫表中?

感謝

+0

對不起 - 錯誤的粘貼代碼,讓我更新。 – 2009-09-30 10:41:28

回答

2

要聲明爲可選的存儲過程的參數:

@MyParam nvarchar(50) = NULL 

例如:

CREATE PROCEDURE TestProc 
(
    @Param1 varchar(50) = NULL 
) 
AS 
SELECT 
    * 
FROM 
    TestTable 
WHERE 
    ((@Param1 IS NULL) OR (col1 = @Param1)) 

但請注意,這種模式,許多參數使用時,可能會導致由於「參數嗅探」而導致錯誤緩存的查詢計劃。

+0

讓我測試一秒...... – 2009-09-30 10:42:17

+0

更新,錯過了等號! – 2009-09-30 10:42:55

+0

關鍵字'NULL'的語法不正確 – 2009-09-30 10:43:05

相關問題