更新 IDbCommand 参数的值

Update value of IDbCommand's parameters

我想在 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;
}

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

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