int? t = 0;
cmd.Parameters.AddWithValue("@Res", ref t);
I get an error in the second line:
argument 2 may not be passed with ref keyword.
You can only pass an argument by reference with ref
if the parameter is a ref
parameter as well. AddWithValue
doesn't have any ref
parameters, so you can't use it that way. Note that you have to specify ref
when calling a method if a parameter has the ref
modifier. So:
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);
Basically, there's no way of telling an ADO.NET command parameter to track the current value of a variable - after all, that variable could be a local variable which will be "gone" by the time you use the command.
Instead, just compute the right value and then set it for the parameter value.
See more on this question at Stackoverflow