我从后面的代码动态地向Sqldatasource控件添加参数。
sq1.UpdateParameters.Clear();
sq1.UpdateCommand = "sp_upn";
sq1.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure;
有没有比下面的代码更好的添加空参数的方法了?(仅在添加时将值设置为空,而不是稍后)
sq1.UpdateParameters.Add("imgid","");
sq1.UpdateParameters["imgid"].DefaultValue = null;
已更新 该参数并非始终为NULL。根据条件,它可能具有Int值。(如果用户上传了图片)
我使用的是Sqldatasource Control,而不是sqlcommand,我不能使用:
cmd.Parameters.AddWithValue("imgid", DBNull.Value);
答案 0 :(得分:2)
建议您在过程本身中添加该默认值,并且在从诸如此类的客户端代码进行调用时不要传递任何内容
create procedure sp_upn
@imgid varchar(30) = null,
//other declarations
答案 1 :(得分:1)
添加参数时可以指定DbType
。例如:
sq1.UpdateParameters.Add("imgid", DbType.Int32, null);