Това е така, защото ExecuteNonQueryкод>
не връща резултата от заявката, а просто я изпълнява на SQL сървъра. Върнатата стойност е броят редове, засегнати от вашия оператор, -1, когато операторът не засяга нито един ред. ExecuteNonQuery
(както подсказва името) не е предназначен за връщане на резултати от заявка, а по-скоро за изпълнение на израз, който променя данни (като INSERT, DELETE, UPDATE). В документите се казва:
Можете да използвате:
count = (int)command.ExecuteScalar();
За да получите броя, който търсите. Има също пример в документи за ExecuteScalar
.