是否可以忽略预期的参数

时间:2013-09-03 23:14:38

标签: c# asp.net sql

.Net
    if (ssn.contains("x))
    {
    cmd.parameters.addwithvalue(nothing just ignore);
    }

-

Stored Procedure Select
case when ssn is null then '' else case when ssn = '' then '' else 'xxxxx' + right(rtrim(ssn),4)

-

Stored Procedure Update
@currentuser varchar(30),
@ssn varchar(11) = NULL

AS
set [ssn] = [@ssn]
where [currentuser] = [@currentuser]

当我读取值时,我得到了我想要的xxx-xx-1234,但现在该值存在于我的文本框中,我不希望用户单击更新并将xxx-xx-1234保存到数据库。处理这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您使用默认值声明存储过程,例如:

@ssn varchar(11) = NULL
如果你不需要,你不必传递任何东西。只是不做

cmd.parameters.addwithvalue

对于它,实际上简单地在为存储过程添加参数时跳过它并且参数不是“预期的”,默认情况下将为NULL分配值。

但如果你很简单就不想做更新 - 那就不要了。检查文本框中的特定值以及是否不正确 - 跳过对DB update的调用。