У меня есть эта хранимая процедура:Как вернуть идентификатор вставленной записи в C#
Insert into dbo.file_row (file_sub_type) values (@file_sub_type)
DECLARE @result int;
SET @result = SCOPE_IDENTITY()
RETURN @result;
Это прекрасно работает, чтобы вернуть идентификатор в SSMS. Однако, когда я вызываю его из C#, он возвращает -1.
var connection = GetSqlConnection();
connection.Open();
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "InsertInto_file_row";
command.Parameters.Add(new SqlParameter("@file_sub_type", fileType));
int result = command.ExecuteNonQuery();
connection.Close();
return result;
Я не вижу, что я делаю неправильно. Мне просто нужен идентификатор вставленной записи.
Грег
использования 'ExecuteScalar' -' ExecuteNonQuery' будет возвращать строки пострадавших. –