Comment puis-je faire une boucle par les lignes avec un lecteur de données en C#?
Je sais que je peux utiliser while(dr.Read()){...}
mais que les boucles de chaque champ de ma table, je veux récupérer toutes les valeurs de la première ligne, puis la deuxième... et ainsi de suite.
Disons que j'ai un tableau comme ceci:
ID--------------Value1--------------Value2------------------Value3
1 hello hello2 hello3
2 hi1 hi2 hi3
d'abord je tiens à obtenir, hello
, hello2
et hello3
puis passez à la deuxième ligne et d'obtenir toutes les valeurs.
Est-il un moyen pour y parvenir? J'espère que quelqu'un comprends ce que je veux dire.
Je suis tellement désolé, c'est résolu maintenant. Je n'ai pas de codage à droite...
Et ouais le SqlDataReader.Méthode Read() est ce qu'il est censé faire, de nouveau, l'erreur a été la mienne.
- Je ne comprends pas ce que tu veux dire. Un DataReader déjà des retours à la lignes une ligne à la fois, et vous pouvez accéder à chaque colonne dans un ordre quelconque, éventuellement, de la première à la dernière si c'est ce que vous voulez. Pourriez-vous mettre à jour votre question à donner un peu de concret code, le résultat attendu et le résultat que vous obtenez en fait?
Vous devez vous connecter pour publier un commentaire.
De cette façon, le
DataReader
fonctionne, il est conçu pour lire les lignes de la base de données une à une.Note; si vous avez plusieurs grilles, puis:
Ou vous pouvez essayer d'accéder directement des colonnes par leur nom:
Il n'y a aucun moyen d'obtenir "l'ensemble de la ligne" à la fois - vous besoin d'une boucle sur les lignes, et pour chaque ligne, vous avez besoin de lire chaque colonne séparément:
Ce que vous faites avec ces chaînes que vous lisez pour chaque ligne est entièrement à vous - vous pouvez stocker dans une classe que vous avez définie, ou quoi que ce soit....
IDataReader.Lire()
avances le lecteur à la ligne suivante dans le jeu de résultats.Ainsi, pour chaque itération de la boucle, vous souhaitez faire une autre boucle de 0 à
reader.FieldCount
, et d'appelerreader.GetValue(i)
pour chaque champ.La plus grande question est quel type de structure voulez-vous utiliser pour contenir les données?
Fait le
Read
méthode d'itération sur les enregistrements dans un jeu de résultats. Dans votre cas, sur les lignes de la table. Si vous ne pouvez toujours l'utiliser.à lire des lignes dans un colunmn
Supposons que votre DataTable possède les colonnes suivantes essayez ce code: