webentwicklung-frage-antwort-db.com.de

Durchlaufen einer Datentabelle

Gut. Ich habe eine DataTable mit mehreren Spalten und mehreren Zeilen.

Ich möchte die DataTable dynamisch durchlaufen, grundsätzlich sollte die Ausgabe ohne geschweifte Klammern wie folgt aussehen:

Name (DataColumn)
Tom  (DataRow)
Peter (DataRow)

Surname (DataColumn)
Smith (DataRow)
Brown (DataRow)

foreach (DataColumn col in rightsTable.Columns)
{
     foreach (DataRow row in rightsTable.Rows)
     {
          //output              
     }
} 

Ich schrieb das ab und bemerkte, dass das nicht funktionieren würde. Kann mir bitte jemand einen Rat geben, wie das besser geht?

19
SpaceApple
foreach (DataColumn col in rightsTable.Columns)
{
     foreach (DataRow row in rightsTable.Rows)
     {
          Console.WriteLine(row[col.ColumnName].ToString());           
     }
} 
42
Candide
     foreach (DataRow row in dt.Rows) 
     {
        foreach (DataColumn col in dt.Columns)
           Console.WriteLine(row[col]);
     }
13
oopbase

Bitte versuchen Sie den folgenden Code:

//Here I am using a reader object to fetch data from database, along with sqlcommand onject (cmd).
//Once the data is loaded to the Datatable object (datatable) you can loop through it using the datatable.rows.count prop.

using (reader = cmd.ExecuteReader())
{
// Load the Data table object
  dataTable.Load(reader);
  if (dataTable.Rows.Count > 0)
  {
    DataColumn col = dataTable.Columns["YourColumnName"];  
    foreach (DataRow row in dataTable.Rows)
    {                                   
       strJsonData = row[col].ToString();
    }
  }
}
6
Chikku Jacob

Wenn Sie den Inhalt jeder einzelnen Zelle in einer Datentabelle ändern möchten, müssen Sie eine weitere Datentabelle erstellen und diese wie folgt mit "Zeile importieren" binden. Wenn wir keine weitere Tabelle erstellen, wird eine Ausnahme ausgelöst, die besagt, dass die Auflistung geändert wurde.

Betrachten Sie den folgenden Code.

//New Datatable created which will have updated cells
DataTable dtUpdated = new DataTable();

//This gives similar schema to the new datatable
dtUpdated = dtReports.Clone();
foreach (DataRow row in dtReports.Rows)
{
    for (int i = 0; i < dtReports.Columns.Count; i++)
    {
        string oldVal = row[i].ToString();
        string newVal = "{"+oldVal;
        row[i] = newVal;
    }
    dtUpdated.ImportRow(row); 
}

Das wird alle Zellen haben, die mit Paranthesis ({) vorangehen

3
Deepak Kothari