C# 存储过程问题
我的存储过程:
CREATE PROCEDURE userupdate
@id int,
@account varchar(50),
@password varchar(50),
@username varchar(50)
AS
declare @sql varchar(1000)
begin
set @sql="update userinfo set "
if @account is not null
set @sql=@sql+"account=@account,"
if @password is not null
set @sql=@sql+"password=@password,"
if @username is not null
set @sql=@sql+"username=@username,"
set @sql=@sql+"1=1 where id=@id"
exec(@sql)
end
GO
我的程序:
SqlParameter[] ParameterObj ={
new SqlParameter("@id",SqlDbType.Int),
new SqlParameter("@account",SqlDbType.Char,50),
new SqlParameter("@password",SqlDbType.Char,50),
new SqlParameter("@username",SqlDbType.Char,50)
};
ParameterObj[0].Value = this.userid;
ParameterObj[1].Value = this.account;
ParameterObj[2].Value = this.password;
ParameterObj[3].Value = this.username;
DataBaseCls.MainDataBase DbCon = DataBaseCls.MainDataBase.DataBaseClsInit();
DbCon.SqlExecuteQuery("userupdate", ParameterObj);
我想问一下,如果我的username没有值,使用这个存储过程是不是会报错,如何能解决,我如果只更新username,就不用去更新其他的account和password,只需要传递2个参数id和username