2009-09-30 143 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

相关问题