Каков самый простой и эффективный способ поиска данных, возвращаемых с помощью запроса? Я использую DataTable
, например sqlAdapter.Fill(_table1)
, а затем делает _table1.Rows.Count
, чтобы увидеть, имеет ли тип данных какие-либо строки. Существуют ли какие-либо классы и функции в C#, которые просто дают мне, если есть какие-либо строки. Мне не нужны данные строк. Просто счет - это то, что мне нужно. Я использую этот запрос для очень больших наборов данных, поэтому я не хочу заполнять данные, содержащие всю информацию о строках.C# SQL, если запрос возвращает количество строк
ответ
string myScalarQuery = "select count(*) from TableName";
SqlCommand myCommand = new SqlCommand(myScalarQuery, myConnection);
myCommand.Connection.Open();
int count = (int) myCommand.ExecuteScalar();
myConnection.Close();
Возможная оптимизация запроса в комментариях ниже: Select Top 1 * FROM TableName
Насколько я понимаю, вы хотите, чтобы запрос определял, содержит ли таблица какие-либо строки? Так почему бы просто не запустить запрос на подсчет – TGH
Выглядит хорошо для меня (+1). Ну, не будучи статически типизированным запросом ;-) * Однако *, ExecuteScalar имеет тип возвращаемого объекта, поэтому Convert.ToInt32 может быть в порядке. –
Если вы просто хотите видеть строки и на самом деле не нуждаетесь в подсчете, возможно, SELECT TOP 1 1 FROM вместо * -, чтобы прекратить обработку, как только увидит строку. – user1166147
Наименее дорогой способ использует SqlDataReader в HasRows свойство
UPDATE: конечно, самый эффективный запрос SELECT будет выглядеть так: «Выберите Top 1 1 FROM TableName», который даже не нужно извлекать данные столбцов.
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlDataReader rdr = cmd.ExecuteReader())
{
if (rdr.HasRows)
...
}
}
. Каким будет SqlCommand в этом случай (для полноты)? Есть ли причина одобрить это за COUNT? –
Самый медленный компонент всегда будет самим запросом, поэтому часть C# является менее важной. – TGH
- 1. sql-запрос не возвращает достаточное количество строк
- 2. SQL - Возвращает ограниченное количество строк, но количество строк в строке
- 3. Sql запрос возвращает 0 строк
- 4. SQL select возвращает определенное количество строк
- 5. ExecuteNonQuery() Возвращает неожиданное количество затронутых строк C#
- 6. Как проверить, если запрос Linq to SQL не возвращает строк?
- 7. Возвращает общее количество строк, затронутых транзакций SQL
- 8. C# SQL, если запрос
- 9. SqlDataReader возвращает x строк, но SQL-запрос возвращает y строк
- 10. rowCount() возвращает неправильное количество строк
- 11. Запрос SQL Server не возвращает никаких строк
- 12. Php - mysql - Возвращает количество строк
- 13. Возвращает ли количество строк?
- 14. возвращает количество строк не работает
- 15. Почему эти два запрос возвращает разное количество строк
- 16. Sql server возвращает количество строк из выбранной хранимой процедуры
- 17. mysql_fetch_array возвращает количество неправильных строк
- 18. Range.Areas возвращает неправильное количество строк
- 19. SQL общее количество строк
- 20. Мой запрос возвращает несколько строк
- 21. Если количество строк в таблице меньше предела, оно возвращает количество строк - 1
- 22. Возвращает количество строк, затронутых несколькими запросами
- 23. ST_Split возвращает огромное количество строк
- 24. Курсор Python возвращает количество строк вместо строк
- 25. COUNT() возвращает неправильное количество строк
- 26. Android sqlite возвращает количество строк из запроса
- 27. запрос, чтобы выбрать определенное количество строк
- 28. SQL-запрос не возвращает результаты, если ожидается
- 29. Подсчитайте все количество строк в запросе SQL
- 30. Запрос возвращает несколько строк?
Сделайте запрос на подсчет. –