将具有空值的参数添加到sqldatasource控件的更好方法

时间:2018-08-17 15:00:18

标签: c# sql

我从后面的代码动态地向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); 

2 个答案:

答案 0 :(得分:2)

建议您在过程本身中添加该默认值,并且在从诸如此类的客户端代码进行调用时不要传递任何内容

create procedure sp_upn
@imgid varchar(30) = null,
//other declarations

答案 1 :(得分:1)

添加参数时可以指定DbType。例如:

sq1.UpdateParameters.Add("imgid", DbType.Int32, null);