.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保存到数据库。处理这个问题的最佳方法是什么?
答案 0 :(得分:0)
如果您使用默认值声明存储过程,例如:
@ssn varchar(11) = NULL
如果你不需要,你不必传递任何东西。只是不做
cmd.parameters.addwithvalue
对于它,实际上简单地在为存储过程添加参数时跳过它并且参数不是“预期的”,默认情况下将为NULL
分配值。
但如果你很简单就不想做更新 - 那就不要了。检查文本框中的特定值以及是否不正确 - 跳过对DB update的调用。