我收到错误使用ado.net时,参数2可能无法与ref关键字一起传递

时间:2017-01-21 09:32:30

标签: c# reference ado.net

int? t = 0;
cmd.Parameters.AddWithValue("@Res", ref t);

我在第二行收到错误:

  

参数2可能不会与ref关键字一起传递。

1 个答案:

答案 0 :(得分:1)

如果参数也是ref参数,则只能通过引用ref传递参数。 AddWithValue没有任何ref参数,因此您无法以这种方式使用它。请注意,如果参数具有ref修饰符,则在调用方法时指定ref。所以:

public void WithRef(ref int x) {}
public void WithoutRef(int x) {}

...


int y = 0;
// Valid
WithRef(ref y);
WithoutRef(y);
// Invalid
WithRef(y);
WithoutRef(ref y);

基本上,没有办法告诉ADO.NET命令参数来跟踪变量的当前值 - 毕竟,该变量可能是一个局部变量,在您使用该命令时它将“消失”。 / p>

相反,只需计算正确的值,然后将其设置为参数值。