0
.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 保存到数据库中。处理它的最佳方法是什么?

4

1 回答 1

0

如果您声明具有默认值的存储过程,例如您的情况:

@ssn varchar(11) = NULL

如果你不需要,你不必传递任何东西给它。只是不做

cmd.parameters.addwithvalue

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

但是,如果您只是不想进行更新 - 那就不要了。检查特定值的文本框,如果它不正确 - 跳过对数据库更新的调用。

于 2013-09-04T02:42:18.633 回答