web-dev-qa-db-fra.com

Comment faire pour que les noms de colonne soient imprimés dans ce programme C #?

J'ai bricolé un programme C # qui prend un fichier .csv et l'écrit dans un DataTable. En utilisant ce programme, je peux parcourir chaque ligne de la DataTable et imprimer les informations contenues dans la ligne. La sortie de la console ressemble à ceci:

--- Row ---
Item: 1
Item: 545
Item: 507
Item: 484
Item: 501

J'aimerais aussi imprimer le nom de la colonne à côté de chaque valeur, pour que cela ressemble à ceci:

--- Row ---
Item: 1   Hour
Item: 545 Day1 KW
Item: 507 Day2 KW
Item: 484 Day3 KW
Item: 501 Day4 KW

Quelqu'un peut-il consulter mon code et me dire ce que je peux ajouter pour que les noms des colonnes soient imprimés? Je suis très nouveau en C #, alors pardonnez-moi si j'ai oublié quelque chose. 

Voici mon code:

// Write load_forecast data to datatable.
DataTable loadDT = new DataTable();
StreamReader sr = new StreamReader(@"c:\load_forecast.csv");                      

string[] headers = sr.ReadLine().Split(',');
foreach (string header in headers)
{
    loadDT.Columns.Add(header); // I've added the column headers here.
}

while (sr.Peek() > 0)
{
    DataRow loadDR = loadDT.NewRow();
    loadDR.ItemArray = sr.ReadLine().Split(',');
    loadDT.Rows.Add(loadDR);
}

foreach (DataRow row in loadDT.Rows)
{
    Console.WriteLine("--- Row ---");
    foreach (var item in row.ItemArray)
    {
        Console.Write("Item:");
        Console.WriteLine(item); // Can I add something here to also print the column names?
    }
}
53
Kevin

Vous devez boucler loadDT.Columns, comme ceci:

foreach (DataColumn column in loadDT.Columns)
{
    Console.Write("Item: ");
    Console.Write(column.ColumnName);
    Console.Write(" ");
    Console.WriteLine(row[column]);
}
95
SLaks
foreach (DataRow row in dt.Rows)
{
    foreach (DataColumn column in dt.Columns)
    {
        ColumnName = column.ColumnName;
        ColumnData = row[column].ToString();
    }
}
21
Yakir Manor

Vous pouvez également accéder au nom de colonne de cette manière si vous ne souhaitez pas parcourir toutes les colonnes:

table.Columns [1] .ColumnName

2
Karan gupta

Code pour Trouver le nom de colonne identique à l’utilisation de la variable Like dans SQL.

foreach (DataGridViewColumn column in GrdMarkBook.Columns)  
                      //GrdMarkBook is Data Grid name
{                      
    string HeaderName = column.HeaderText.ToString();

    //  This line Used for find any Column Have Name With Exam

    if (column.HeaderText.ToString().ToUpper().Contains("EXAM"))
    {
        int CoumnNo = column.Index;
    }
}
2
Meenu Soman

Imprimer des lignes de données avec colonne

Here is solution 

DataTable datatableinfo= new DataTable();

// Fill data table 

//datatableinfo=fill by function or get data from database

//Print data table with rows and column


for (int j = 0; j < datatableinfo.Rows.Count; j++)
{
    for (int i = 0; i < datatableinfo.Columns.Count; i++)    
        {    
            Console.Write(datatableinfo.Columns[i].ColumnName + " ");    
            Console.WriteLine(datatableinfo.Rows[j].ItemArray[i]+" "); 
        }
}


Ouput :
ColumnName - row Value
ColumnName - row Value
ColumnName - row Value
ColumnName - row Value
0
Sameer Bahad