我希望在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;
}
答案 0 :(得分:3)
您需要将其强制转换为IDbDataParameter
,因为IDataParameterCollection
索引器会返回object
类型:
var parameterName = "@" + name;
if (command.Parameters.Contains(parameterName))
{
var parameter = command.Parameters[parameterName] as IDbDataParameter;
parameter.Value = value;
}