我收到一个错误参数 2 可能不会在使用 ado.net 时使用 ref 关键字传递

Var*_*pta 5 c# ado.net reference

int? t = 0;
cmd.Parameters.AddWithValue("@Res", ref t);
Run Code Online (Sandbox Code Playgroud)

我在第二行出现错误:

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

Jon*_*eet 8

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);
Run Code Online (Sandbox Code Playgroud)

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

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