更新IDbCommand参数值

Mug*_*ara 1 c# sql ado.net

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

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

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

if (command.Parameters.Contains("@" + name))
{
     command.Parameters["@" + name].Value = value;
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*und 5

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

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