C# SQL si la requête retourne toutes les lignes comte
Quel est le plus simple et le plus efficace pour trouver si une des données de retours à l'aide d'une requête? Je suis en utilisant DataTable
comme sqlAdapter.Fill(_table1)
et ensuite de faire _table1.Rows.Count
pour voir si un datatable a des lignes. Est-il des classes et des fonctions en C# qui me donne juste si il y a toutes les lignes. Je n'ai pas besoin des données de lignes. Juste le comte est ce dont j'ai besoin. Je suis l'exécution de cette requête à l'encontre de très grands ensembles de données, donc je ne veux pas remplir le datatable avec l'ensemble de la ligne info.
Faire un nombre de requête.
OriginalL'auteur iefpw | 2012-05-26
Vous devez vous connecter pour publier un commentaire.
Possible l'optimisation de la requête par les commentaires ci-dessous:
Select Top 1 * from TableName
Me semble bon (+1). Ainsi, à l'exception de ne pas être un statiquement typé requête 😉 Cependant, ExecuteScalar a un
object
type de retour de sorte qu'un Convertir.ToInt32 pourrait être dans l'ordre.Si vous voulez juste voir les lignes et n'en a pas vraiment besoin de les compter peut-être SÉLECTIONNER SUPÉRIEUR de 1 1 à PARTIR de la place de * - pour arrêter le traitement dès qu'il voit une ligne.
Je suis d'accord. J'ai inclus le comte juste pour la souplesse si le comte est nécessaire
Ajouté l'optimisation de votre suggestion @user1166147
OriginalL'auteur TGH
La façon la moins chère est à l'aide de SqlDataReader de HasRows propriété
Mise à JOUR: bien sûr, le plus efficace requête SELECT sera comme "Select Top 1 1 from TableName", qui n'a même pas besoin de tirer toutes les données de la colonne.
Le composant le plus lent sera toujours la requête elle-même, de sorte que le C# de la partie est de l'omi moins important.
OriginalL'auteur detale