Schnellere Methode zum Lesen von CSV in Grid
Ich habe folgende in Windows Forms .NET 3.5
Es funktioniert gut für csv mit Datensätzen unter 10.000, ist aber langsamer für Datensätze über 30.000. Die Eingabe-CSV-Datei kann beliebige Datensätze zwischen 1 und 1.00.000 Datensätzen enthalten
Derzeit verwendeter Code:
/// <summary>
/// This will import file to the collection object
/// </summary>
private bool ImportFile()
{
try
{
String fName;
String textLine = string.Empty;
String[] splitLine;
// clear the grid view
accountsDataGridView.Rows.Clear();
fName = openFileDialog1.FileName;
if (System.IO.File.Exists(fName))
{
System.IO.StreamReader objReader = new System.IO.StreamReader(fName);
do
{
textLine = objReader.ReadLine();
if (textLine != "")
{
splitLine = textLine.Split(',');
if (splitLine[0] != "" || splitLine[1] != "")
{
accountsDataGridView.Rows.Add(splitLine);
}
}
} while (objReader.Peek() != -1);
}
return true;
}
catch (Exception ex)
{
if (ex.Message.Contains("The process cannot access the file"))
{
MessageBox.Show("The file you are importing is open.", "Import Account", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
MessageBox.Show(ex.Message);
}
return false;
}
}
Beispieleingabedatei:
18906, Y.
18908, Y.
18909, Y.
18910, Y.
18912, N
18913, N
Benötigen Sie Ratschläge zur Optimierung dieses Codes für schnelles Lesen und Anzeigen im Raster.