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.

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;");
			}
		}
	}
}
Si vous savez ce que je peux faire pour alléger, je suis preneur !

Merci