J'ai donc ce codeComment Numerate (1,2,3 ...) mon résultat DataReader
Using FileObject As New FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)
Using StreamWriterObj As New StreamWriter(FileObject)
connect.Open()
Using reader As SqlDataReader = command.ExecuteReader()
Dim FieldCount As Integer = reader.FieldCount - 1
Do While reader.Read()
StreamWriterObj.Write(reader.Item(0))
For i = 1 To FieldCount
StreamWriterObj.Write(" @ ")
StreamWriterObj.Write(reader.Item(i))
Next
StreamWriterObj.WriteLine()
Loop
End Using
connect.Close()
End Using
End Using
qui définit essentiellement mes résultats d'une requête SQL dans un objet StreamWriter et exporte comme. fichier txt. Voici un exemple du résultat après la requête de sélection:
+---------------------------------------+
| Results |
+---------------------------------------+
+ +
| Document No.| # | col 3 | col 4 |
+-------------+-------+--------+--------+
| 333456 | 0 | "value"| "value"|
+-------------+-------+--------+--------+
| 333456 | 0 | "value"| "value"|
+-------------+-------+--------+--------+
| 462345 | 0 | "value"| "value"|
+-------------+-------+--------+--------+
| 585357 | 0 | "value"| "value"|
+-------------+-------+--------+--------+
Donc, ma tâche est de faire de telle sorte que, lorsque j'exporter le fichier txt, à l'intérieur ressemblera à ceci:
+---------------------------------------+
| Results |
+---------------------------------------+
+ +
| Document No.| # | col 3 | col 4 |
+-------------+-------+--------+--------+
| 333456 | 1 | "value"| "value"|
+-------------+-------+--------+--------+
| 333456 | 2 | "value"| "value"|
+-------------+-------+--------+--------+
| 333456 | 3 | "value"| "value"|
+-------------+-------+--------+--------+
| 462345 | 1 | "value"| "value"|
+-------------+-------+--------+--------+
| 585357 | 1 | "value"| "value"|
+-------------+-------+--------+--------+
| 585357 | 2 | "value"| "value"|
+-------------+-------+--------+--------+
ou en d'autres termes de numéroter (numéro suivant) les lignes en fonction du numéro de document. (La requête de sélection est triée par Doc No).
Je pense qu'une solution judicieuse serait d'utiliser un StringBuilder, mais je vais avoir besoin d'aide avec cela.
Merci
A l'intérieur du 'Pour i = 1 Pour FieldCount' obtenir le Doc Num dans une variable, et chaque fois qu'il change, incrémenter votre variable de séquence. Je remplirais probablement un datatable et l'utiliserais comme une source qui donnerait d'autres options. S'il vous plaît lire [demander] et prendre le [tour]. – Plutonix
Étape 1 - si vous ne l'avez pas déjà fait, assurez-vous que votre requête ordonne les résultats par le numéro de document. Étape 2 - in vb, créez une variable nommée quelque chose comme numberForThisDocument. Puis, lorsque vous parcourez les résultats de la requête, attribuez des valeurs appropriées à cette variable et incluez-la dans votre sortie. –
Je vous suggère de le faire directement avec la requête. C'est quelque chose qui peut être fait sur la plupart des bases de données. –