I am having issue to use SqlClient to call some sql query with parameter declared but not assigned. The query I want to run is similar to below
DECLARE @ID int;
SELECT @ID = OrderId
FROM Orders
ORDER BY OrderId DESC;
SELECT @ID;
However, when I created SqlParameter as following
SqlParameter parameter = new SqlParameter("ID", SqlDbType.Int);
sqlcommand.Parameters.Add(parameter);
I got error showing:
"The parameterized query
'(@ID int)SELECT @ID = OrderId
FROM Orders
ORDER BY OrderId DES'
expects the parameter '@ID', which was not supplied."
Any suggestions on how to create SqlParameter without any value assigned in such case?
In your case you have to specify that @ID is an output parameter.
SqlParameter parameter = new SqlParameter("ID", SqlDbType.Int)
{
Direction = ParameterDirection.Output
}
When the query will be executed you can retrieve that value via
parameter.Value
It will return an instance of the object type.