【问题标题】:Better way to add a parameter with null value to sqldatasource control将具有空值的参数添加到 sqldatasource 控件的更好方法
【发布时间】:2018-08-17 15:00:18
【问题描述】:

我从后面的代码动态地向Sqldatasource控件添加参数。

sq1.UpdateParameters.Clear();
sq1.UpdateCommand = "sp_upn";
sq1.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure;

有没有更好的方法来添加空参数?比下面的代码更好?(仅在添加时将值设置为null,而不是稍后)

sq1.UpdateParameters.Add("imgid","");
sq1.UpdateParameters["imgid"].DefaultValue = null;

已更新 参数不总是NULL。根据条件可能有Int值。(如果用户上传了图片)

我使用的是 Sqldatasource Control 而不是 sqlcommand,我不能使用:

cmd.Parameters.AddWithValue("imgid", DBNull.Value); 

【问题讨论】:

  • 指定DbType 有帮助吗?
  • @tia 谢谢。是的! sq1.UpdateParameters.Add("imgid", DbType .Int32,null);工作。请添加为答案。我会接受它

标签: c# sql


【解决方案1】:

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

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

【讨论】:

  • 它并不总是为空。它可能为 null 或可能具有 int 值
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多