c# - 更新 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;
}
解决方案
您需要将其转换为,IDbDataParameter
因为IDataParameterCollection
索引器返回一个object
类型:
var parameterName = "@" + name;
if (command.Parameters.Contains(parameterName))
{
var parameter = command.Parameters[parameterName] as IDbDataParameter;
parameter.Value = value;
}
推荐阅读
- c# - 如何在 Visual Studio 2019 Professional 中打开 C# 调用堆栈(字符串)?
- r - 使用 addmargin 计算表中的加权边际平均值
- kustomize - 是否可以编写 Kustomize 文件?
- python - 将值块添加到 PyTorch 中特定位置的张量
- react-native - 反应,“e”是做什么的?
- python - OSMNX 无法从某个地方导入图形或 GDF
- php - 如何在function.php文件中的Wordpress上的Woocommerce购物车页面上为折扣文本添加换行符
- mysql - 当列为 unix 格式时,在两个日期之间拉取行
- bash - 为什么我在一个简单的 shell 脚本中得到“expr: syntax error”的错误
- gitlab - 工件是否必须上传到 gitlab 才能在阶段之间重用?