Search code examples
c#winformsdatatablereport

Creating DataTable from Text File and splitting


This is going to be my text file (30 lines)

OrderNo:37374
OrderQuantity:250
BarcodeQR:584,25478Klkd28
NormalBarcode:1565484864
.......
.......
.......

This is the code :

public DataTable DTforReport()
{
    DataTable dt = new DataTable();
    DataColumn col = new DataColumn("test");
    col.DataType = System.Type.GetType("System.String");
    dt.Columns.Add(col);

    string[] lines = File.ReadAllLines("C:\\Users\\abc\\Desktop\\abc.txt");
    foreach (var line in lines)
    {
        var segments = line.Split(';');
        foreach (var seg in segments)
        {
            DataRow dr = dt.NewRow();
            dr[0] = seg;
            dt.Rows.Add(dr);
        }
    }
    return dt;
}

I want my output like this

 OrderNo  OrderQuantity   BarcodeQR
  37374       250       584,25478Klkd28

How can I change my code to achieve this?


Solution

  • You have generated only one column. Change your code like below to see your desired result:

    public DataTable DTforReport()
    {
        DataTable dt = new DataTable();
        string[] lines = File.ReadAllLines("C:\\Users\\abc\\Desktop\\abc.txt");
        DataRow dr = dt.NewRow();
    
        for (int i = 0; i < lines.Length; i++)
        {
            DataColumn col = new DataColumn(lines[i].Split(':')[0]);
            col.DataType = Type.GetType("System.String");
            dt.Columns.Add(col);
            var segment = lines[i].Split(':')[1];               
            dr[i] = segment;                
        }
    
        dt.Rows.Add(dr);
        return dt;
    }