J'ai un problème avec la valeur returnnée par SqlCommand
, j'ai ce code:
ssortingng sqlSelect = "Select TOP 1 Quotation.SentToSupp as SentToSupp FROM Quotation JOIN Notifications ON Quotation.QuotationId = QuotationID "; SqlCommand Comm = new SqlCommand(sqlSelect, this.Connection);
sqlSelect
requête sqlSelect
sélectionne la première valeur DateTime
. Quand j'appelle à SqlCommand
je veux get cette valeur (juste une valeur). J'ajoute la requête et ma connection bien.
Mais je ne sais pas comment get ma valeur DateTime
… Doit utiliser quelque chose comme ExecuteReader
?
Merci d'avance!!
Utiliser la méthode SqlCommand.ExecuteScalar – Exécute la requête et renvoie la première colonne de la première ligne de l'set de résultats renvoyé par la requête. Les colonnes ou les lignes supplémentaires sont ignorées.
ExecuteReader
fonctionne mais plus d'objects et plus de code sont requirejs – (Un SqlDataReader
, appel à lire et extraire la valeur). Au lieu de cela, vous pouvez simplement utiliser la méthode ExecuteScalar
de l'object SqlCommand
(Elle renvoie uniquement la première colonne de la première ligne du jeu de résultats)
ssortingng sqlSelect = "Select TOP 1 Quotation.SentToSupp as SentToSupp FROM ...."; SqlCommand Comm = new SqlCommand(sqlSelect, this.Connection); object result = Comm.ExecuteScalar(); if(result != null) DateTime dtResult = Convert.ToDateTime(result);
Faites juste attention au fait que ExecuteScalar
peut returnner une valeur null
si, pour une raison quelconque, il n'y a pas d'logging dans le résultat returnné