Problème avec fonction Datatable / Dataview
Bonjour à tous
J'ai une fonction me permettant de lire un fichier et de l'importer dans une Datatable de mon programme :
Code:
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
| public DataTable ReadTatable(string strFilePath, int iNumberOfColumns, DataTable dtToRead)
{
dtToRead.Columns.Clear();
dtToRead.Rows.Clear();
for (int col = 0; col < iNumberOfColumns; col++)
dtToRead.Columns.Add(new DataColumn("Column" + (col + 1).ToString()));
string[] lines = File.ReadAllLines(strFilePath);
foreach (string line in lines)
{
var cols = line.Split('\t');
DataRow dr = dtToRead.NewRow();
for (int cIndex = 0; cIndex < iNumberOfColumns; cIndex++)
{
dr[cIndex] = cols[cIndex];
}
dtToRead.Rows.Add(dr);
}
return dtToRead;
} |
Tout fonctionne parfaitement, quand j'appelle la fonction comme ceci :
Code:
1 2 3 4 5
| ReadTatable(@"C:\Times\Pointages.log", 7, dtPointagesEmpTotal);
DataView dv = new DataView(dtPointagesEmpTotal);
dv.Sort = "Column6, Column7";
DataTable dtPointagesEmpTotalSorted = dv.ToTable(); |
La première fois, ça fonctionne impeccable. Aucun soucis !
La deuxième fois que je l'appelle la fonction, ça plante sur la ligne de la fonction :
Code:
dtToRead.Rows.Add(dr);
Citation:
Une exception non gérée du type 'System.NullReferenceException' s'est produite dans System.Data.dll
Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.
Pour info, j'ai débuggé un peu, si j'enlève la ligne de code suivante après l'appel de la fonction :
Code:
//dv.Sort = "Column6, Column7";
Je peux l'appeler autant de fois que je veux et ça ne plante plus.
Pourquoi le sort de la Dataview me fait-il planter la fonction lors du second appel ?
Merci.