Comment puis-je obtenir des noms de colonnes à imprimer 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 du 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, de manière à ce qu’il 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 regarder mon code et me dire ce que je peux append pour que les noms des colonnes soient imprimés? Je suis très nouveau à C #, alors s’il vous plaît 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"); ssortingng[] headers = sr.ReadLine().Split(','); foreach (ssortingng 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? } } 

Vous devez boucler sur loadDT.Columns , comme ceci:

 foreach (DataColumn column in loadDT.Columns) { Console.Write("Item: "); Console.Write(column.ColumnName); Console.Write(" "); Console.WriteLine(row[column]); } 
 foreach (DataRow row in dt.Rows) { foreach (DataColumn column in dt.Columns) { ColumnName = column.ColumnName; ColumnData = row[column].ToSsortingng(); } } 

Code pour Trouver la colonne Nom identique à l’utilisation de Like in sql.

 foreach (DataGridViewColumn column in GrdMarkBook.Columns) //GrdMarkBook is Data Grid name { ssortingng HeaderName = column.HeaderText.ToSsortingng(); // This line Used for find any Column Have Name With Exam if (column.HeaderText.ToSsortingng().ToUpper().Contains("EXAM")) { int CoumnNo = column.Index; } } 

Vous pouvez également accéder au nom de la colonne comme ceci si vous ne souhaitez pas parcourir toutes les colonnes:

table.Colonnes [1] .NomColonne

Imprimer des lignes datables 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