Bonjour,
Je veux savoir comment parcourir le même OracleDataReader
Je cherche qq chose comme MoveFirst entre les deux boucles.Code:
1
2
3
4
5
6
7
8
9 While vReader.Read End While While vReader.Read End While
Version imprimable
Bonjour,
Je veux savoir comment parcourir le même OracleDataReader
Je cherche qq chose comme MoveFirst entre les deux boucles.Code:
1
2
3
4
5
6
7
8
9 While vReader.Read End While While vReader.Read End While
Bonjour,
C'est impossible !
Pourquoi as-tu ce besoin ?
1ere boucle--> récupérer la longueur des enregistrement pour récupérer le max de chaque colonne
2eme boucle--> écrire les enregistrements dans un fichier texte et prendre en considération la longueur maximale pour qu'ils soient bien formatées (colonnes de même longueur)
Ok,
Sachant que tu ne pourras pas reparcourir le datareader et il faut que tu le parcoures en stockant les valeurs temporairement là où tu veux (DataTable, ...) et que dans ce premier parcours tu récupéres les longueurs max de tes colonnes. Ensuite tu écris ton fichier en parcourant la DataTable par exemple.
Mais comment gères-tu les types comme DateTime, ... ?
Sinon une autre possibilité, regarde du coté de la fonction getSchema du datareader.
et si j'exécute une autre fois la requête
Code:vReader = comm.ExecuteReader
OU
Utiliser Datatable
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim dt As New DataTable dt.Load(vReader) Dim i As Integer For i = 0 To dt.Rows.Count - 1 Response.Write(dt.Rows(i).Item(0) & "--" & dt.Rows(i).Item(3)) Response.Write("<br>") Next Response.Write("<br>deuxieme parcours<br>") For i = 0 To dt.Rows.Count - 1 Response.Write(dt.Rows(i).Item(0) & "--" & dt.Rows(i).Item(3)) Response.Write("<br>") Next
L'idée de réexécuter la requête est une fausse bonne idée, je dirais même plus, une grosse erreur, la solution "codée" de DeveloppeurWeb est la bonne et DeveloppeurWeb merci je n'avais jamais vu qu'une DataTable avait une méthode Load récupérant les lignes à partir d'un DataReader.