如何获取列名在此C#程序中打印?
我已经拼凑了一个C#程序,它将一个.csv
文件写入一个DataTable
。 使用这个程序,我可以遍历DataTable
每一行并打印DataTable
包含的信息。 控制台输出如下所示:
--- Row --- Item: 1 Item: 545 Item: 507 Item: 484 Item: 501
我想打印每个值旁边的列名称,以便它看起来像这样:
--- Row --- Item: 1 Hour Item: 545 Day1 KW Item: 507 Day2 KW Item: 484 Day3 KW Item: 501 Day4 KW
有人可以看我的代码,并告诉我可以添加什么,以便列名将打印? 我对C#很新,所以请原谅我,如果我忽略了一些东西。
这是我的代码:
// 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? } }
你需要遍历loadDT.Columns
,像这样:
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].ToString(); } }
用于查找列名的代码Like
在sql中使用Like
相同。
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; } }