Запрос всегда возвращает -1, не знаю почему. Кто-нибудь, пожалуйста, объясните. Значение count всегда остается равным -1.Count Всегда возвращает -1 SQL Server. ASP.NET C#
string query = "SELECT COUNT(*) AS Emails FROM users";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@email", email);
try
{
connection.Open();
count = command.ExecuteNonQuery();
if (count > 0)
return "Something Wrong1";
}
catch
{
return "Something Wrong2";
}
return count + "Every thing ok";
}
Из [MSDN] (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx): для операторов UPDATE, INSERT и DELETE возвращаемое значение равно количество строк, на которые влияет команда. Когда триггер существует в вставленной или обновляемой таблице, возвращаемое значение включает в себя количество строк, затронутых как операцией вставки, так и обновлением, а также количеством строк, затронутых триггером или триггерами. Для всех других типов операторов возвращаемое значение равно -1. – SWeko
Это не значение 'count', которое вы возвращаете - вызов' .ExecuteNonQuery' возвращает количество строк **, затронутых ** вашим оператором SQL - нет ничего, что могло бы повлиять на любые строки, поэтому вы получите -1 , Вместо этого используйте '.ExecuteScalar()', чтобы вернуть значение одной строки, одно значение столбца, возвращаемое вашим запросом. –