首页 > 解决方案 > 更新 IDbCommand 参数的值

问题描述

我想在IDbCommand参数值确实存在时更新它

    public void AddParameter(IDbCommand command, string name, object value)
    {
        var parameter = command.CreateParameter();
        parameter.ParameterName = "@" + name;
        parameter.Value = value;
        command.Parameters.Add(parameter);
    }

我尝试将此添加到我的方法中,但它不适用于IDBCommand,因为它是一个SqlCommand选项。

if (command.Parameters.Contains("@" + name))
{
     command.Parameters["@" + name].Value = value;
}

标签: c#sqlado.net

解决方案


您需要将其转换为,IDbDataParameter因为IDataParameterCollection索引器返回一个object类型:

var parameterName = "@" + name;
if (command.Parameters.Contains(parameterName))
{
     var parameter = command.Parameters[parameterName] as IDbDataParameter;
     parameter.Value = value;
}

推荐阅读