suma - ¿Cómo obtengo los nombres de las columnas para imprimir en este programa C#?
recorrer matriz c# (5)
He improvisado un programa C # que toma un archivo .csv
y lo escribe en una DataTable
. Al usar este programa, puedo recorrer cada fila de DataTable
e imprimir la información contenida en la fila. La salida de la consola se ve así:
--- Row ---
Item: 1
Item: 545
Item: 507
Item: 484
Item: 501
También me gustaría imprimir el nombre de la columna al lado de cada valor para que se vea así:
--- Row ---
Item: 1 Hour
Item: 545 Day1 KW
Item: 507 Day2 KW
Item: 484 Day3 KW
Item: 501 Day4 KW
¿Puede alguien mirar mi código y decirme qué puedo agregar para que se impriman los nombres de las columnas? Soy muy nuevo en C #, así que por favor, perdónenme si he pasado por alto algo.
Aquí está mi código:
// 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?
}
}
Código para Buscar el nombre de columna igual que usar el Like
en 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;
}
}
Debes loadDT.Columns
encima de loadDT.Columns
, así:
foreach (DataColumn column in loadDT.Columns)
{
Console.Write("Item: ");
Console.Write(column.ColumnName);
Console.Write(" ");
Console.WriteLine(row[column]);
}
También puede acceder al nombre de columna específicamente así si no desea recorrer todas las columnas:
table.Columns [1] .ColumnName
Imprimir filas de tabla de datos con columna
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
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
ColumnName = column.ColumnName;
ColumnData = row[column].ToString();
}
}