Enterprise Library 5 - выполнить отрицательный результат без запроса
У меня есть следующий код, используя Microsoft Enterprise Library 5:
Database database = DatabaseFactory.CreateDatabase("myConStr");
int rowsAffected = database.ExecuteNonQuery("[DeleteCustomer]", cboCustomers.SelectedItem.ToString());
MyConStr правильно определен в app.config (он работает для других запросов на основе EL). SP DeleteCustomer определяется как:
CREATE PROCEDURE DeleteCustomer
@CustomerID nchar(5)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
delete from dbo.Customers
where CustomerID = @CustomerID
END
В документации метода ExecuteNonQuery говорится, что результат возвращает количество затронутых строк.
Тем не менее, я всегда получаю результат "-1", даже если удаление работает нормально. В чем дело? Что я могу сделать, чтобы получить количество удаленных записей?
Спасибо, Lucian
1 ответ
Решение
"Когда задано значение SET NOCOUNT, счетчик (с указанием количества строк, затронутых оператором Transact-SQL) не возвращается".