Salut, je souhaite exporter une base de données, contenant un grand nombre de résultats (millions) vers le format CSV et je rencontre des problèmes. Je débute en c#.
Le script suivant rencontre des problèmes, le connecteur odbc plante à partir d'un trop grand nombre de résultats. Je ne sais pas si un simple count en sql est gourmand, mais ça suffit pour faire planter le connecteur.
Si vous savez ce que je peux faire pour alléger, je suis preneur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 public void exportDatabaseToCSV() { int iBrowseTable = 0; int iBrowseColumn = 0; string sTableName; using (StreamWriter streamWriter = new StreamWriter(@"C:\export.csv")) { DataTable aListTable = this.getTables(); foreach (DataRow dr in aListTable.Rows) /*** Parcours des tables ***/ { sTableName = dr[2].ToString(); // Affichage de la table streamWriter.Write(sTableName + ";" + dr[4].ToString() + "\n;"); OdbcDataReader aListResult = this.getResults("SELECT COUNT(*) FROM " + sTableName); // Affichage des noms des colonnes while (iBrowseTable < aListResult.FieldCount) streamWriter.Write(aListResult.GetName(iBrowseTable++) + ";"); streamWriter.Write("\n;"); // Affichage des résultats while (aListResult.Read()) { while (iBrowseColumn < aListResult.FieldCount) streamWriter.Write(aListResult[iBrowseColumn++] + ";"); iBrowseColumn = 0; streamWriter.Write("\n;"); } } } }
Merci
Partager