Я новичок в C# и SQL Server, и я написал этот запрос для создания хранимой процедуры в SQL Server:Как получить возвращаемое значение хранимой процедуры SQL Server в C#?
create procedure newBehzad
@id bigint
as
DECLARE @ResultValue int
select *
from TABLEA
where id > @id
SET @ResultValue = -5
go
Все работает, и я написал это C# код для вызова этой хранимой процедуры и возвращать одно значение:
using (var conn = new SqlConnection(connectionString))
using (var command = new SqlCommand("newBehzad", conn)
{
CommandType = CommandType.StoredProcedure
})
{
conn.Open();
command.Parameters.Add("@id", SqlDbType.BigInt).Value = 2;
command.Parameters.Add("@ResultValue", SqlDbType.Int);
SqlParameter retval = command.Parameters.Add("@ResultValue", SqlDbType.Int);
retval.Direction = ParameterDirection.ReturnValue;
retunvalue = (string)command.Parameters["@ResultValue"].Value;
//SqlParameter retval = sqlcomm.Parameters.Add("@b", SqlDbType.VarChar);
command.ExecuteNonQuery();
conn.Close();
}
MessageBox.Show(returnValue);
Но когда я запустить приложение C# Windows, я получаю эту ошибку:
Procedure or function newBehzad has too many arguments specified.
Как я могу решить это? Благодарю.
ResultValue не является параметром хранимой прок. Что делает хранимый продукт? Он выбирает данные, но вы производите запрос. Нонсенс. –
@GiorgiNakeuri спасибо за ответ, у моей TABELA есть поле идентификатора идентичности (1,1), и когда вы выбираете ту TABLEA, возвращаете последний id – user3671271