Je suis confondu avec l'usage de
Quand utiliser ces méthodes?
ExecuteScalar () renvoie uniquement la valeur de la première colonne de la première ligne de votre requête.
ExecuteReader () renvoie un objet pouvant itérer sur l’ensemble du jeu de résultats tout en conservant un seul enregistrement en mémoire à la fois.
ExecuteNonQuery () ne renvoie pas de données, mais uniquement le nombre de lignes affectées par une insertion, une mise à jour ou une suppression.
En outre, vous pouvez consulter le type DbDataAdapter , qui inclut un Fill () méthode qui vous permet de télécharger l'intégralité du jeu de résultats dans un DataTable ou DataSet objet, ainsi qu'un certain nombre d'autres capacités.
Enfin, cela semble être un bon moment pour vous familiariser avec MSDN . C'est à cela que sert la documentation: vous avez les noms de méthodes. Va les chercher.
ExecuteScalar: Pour une valeur unique
Int32 Value = Convert.ToInt32(ExecuteScalar("SELECT SUM(COLUMNNAME) FROM TABLE"));
Int32 Value = Convert.ToInt32(ExecuteScalar("SELECT AVG(COLUMNNAME) FROM TABLE"));
ExecuteReader: Lecture de ligne en mode de transfert
IdataReader dr = ExecuteReader("SELECT * FROM TABLE");
while(dr.Read())
{
//You will get rows values like this dr["ColumnName"]
}
ExecuteNonQuery: Pour insérer/supprimer/mettre à jour les lignes dans la table
ExecuteNonQuery("DELETE FROM TABLE");
ExecuteNonQuery("UPDATE TABLE SET COLUMNNAME = 'A'");
ExecuteNonQuery
La méthode ExecuteNonQuery renverra le nombre de lignes effectuées avec les opérations INSERT, DELETE ou UPDATE. Cette méthode ExecuteNonQuery sera utilisée uniquement pour les instructions insert, update et delete, create et SET. (En savoir plus sur ExecuteNonQuery)
Documentation MSDN SqlCommand.ExecuteNonQuery
ExecuteReader
Execute Reader sera utilisé pour renvoyer le jeu de lignes lors de l'exécution d'une requête SQL ou d'une procédure stockée à l'aide d'un objet de commande. Celui-ci sert uniquement à la récupération des enregistrements et est utilisé pour lire les valeurs de la table du premier au dernier . (En savoir plus sur ExecuteReader)
documentation MSDN de SqlCommand.ExecuteReader
Exécute Scalar
Execute Scalar renverra une valeur de colonne unique à ligne unique, c'est-à-dire une valeur unique, lors de l'exécution d'une requête SQL ou d'une procédure stockée à l'aide d'un objet de commande. Il est très rapide de récupérer des valeurs uniques à partir de la base de données. ( En savoir plus sur Execute Scalar )
Utilisez ExecuteScalar
lorsque votre requête renvoie une valeur unique. S'il renvoie plus de résultats, le résultat final correspond à la première colonne de la première ligne. Un exemple pourrait être SELECT Count(*) from MyTable
Utilisez ExecuteReader
pour obtenir un ensemble de résultats comportant plusieurs lignes/colonnes (par exemple, SELECT col1, col2 from MyTable
.
Utilisez ExecuteNonQuery
pour les instructions SQL qui ne récupéreront pas les résultats de la base de données mais effectueront une mise à jour dans la base de données existante (par exemple, UPDATE, INSERT,
etc.).
Ceci est essentiellement simplifié, mais vous pouvez rechercher chacun des termes SQL ou des objets .net ou lire ADO.net sur MSDN pour plus d'informations.
ExecuteScalar
lorsque vous appelez une fonction scalaire SQL qui ne renvoie qu'un seul nombre.
ExecuteReader
lorsque vous passez un appel SQL qui renverra un jeu d'enregistrements à partir d'une table, ce qui vous donnera un objet SqlDataReader pour récupérer les données en C #.
ExecuteNonQuery
est utilisé lorsqu'il n'y a aucune valeur de retour attendue de la part du serveur SQL, un exemple étant une simple instruction UPDATE.