更新IDbCommand参数的值

时间:2018-04-25 11:02:01

标签: c# sql ado.net

我希望在IDbCommand参数确实存在时更新{/ 1}}的值

    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;
}

1 个答案:

答案 0 :(得分:3)

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

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