Hi All,
Lets see how to show the delimiter text file in DataGridView in C#. Lot of use face the problem when we have CSV or any other delimiter text file and asked to show it as table in C# DataGridView.
As one user asked at Stackoverflow
You can have to copy paste the following code and ready to go..
if pipeline(|) is delimiter character else pass what else it is. Default delimiter char is common(,) so in case of (,) no need to even pass it.
It works like charm. :)
Happy Coding.. and Sharing.. :)
Lets see how to show the delimiter text file in DataGridView in C#. Lot of use face the problem when we have CSV or any other delimiter text file and asked to show it as table in C# DataGridView.
As one user asked at Stackoverflow
You can have to copy paste the following code and ready to go..
using System.Data;
using System.IO;
public class Helper
{
public static DataTable DataTableFromTextFile(string location, char delimiter=',')
{
DataTable result;
string[] LineArray = File.ReadAllLines(location);
result = FormDataTable(LineArray, delimiter);
return result;
}
private static DataTable FormDataTable(string []LineArray, char delimiter)
{
bool IsHeaderSet = false;
DataTable dt = new DataTable();
AddColumnToTable(LineArray, delimiter, ref dt);
AddRowToTable(LineArray, delimiter, ref dt);
return dt;
}
private static void AddRowToTable(string []valueCollection, char delimiter, ref DataTable dt)
{
for (int i = 1; i < valueCollection.Length; i++)
{
string[] values = valueCollection[i].Split(delimiter);
DataRow dr = dt.NewRow();
for (int j = 0; j < values.Length; j++)
{
dr[j] = values[j];
}
dt.Rows.Add(dr);
}
}
private static void AddColumnToTable(string []columnCollection, char delimiter, ref DataTable dt)
{
string[] columns = columnCollection[0].Split(delimiter);
foreach (string columnName in columns)
{
DataColumn dc = new DataColumn(columnName, typeof(string));
dt.Columns.Add(dc);
}
}
}
Thats all.. ready to use.. Now let me tell you how to bind this with DataGridView just call// if | is delimiter char
//fname| sname| age
//deepak| sharma| 23
//Gaurav| sharma| 32
//Alok| Kumar| 33
dataGridView1.DataSource = Helper.DataTableFromTextFile("Testing.txt", '|');
//if comma , is delimiter char like -
//fname, sname, age
//deepak, sharma, 23
//Gaurav, sharma, 32
//Alok, Kumar, 33
dataGridView1.DataSource = Helper.DataTableFromTextFile("Testing.txt");
if pipeline(|) is delimiter character else pass what else it is. Default delimiter char is common(,) so in case of (,) no need to even pass it.
It works like charm. :)
Happy Coding.. and Sharing.. :)