Bien. J'ai un DataTable avec plusieurs colonnes et plusieurs lignes.
Je veux parcourir le DataTable dynamiquement, la sortie devrait ressembler à ce qui suit, à l'exception des accolades:
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
}
}
J'ai tapé cela et j'ai remarqué que cela ne fonctionnerait pas. Quelqu'un peut-il vous conseiller sur une meilleure façon de procéder?
foreach (DataColumn col in rightsTable.Columns)
{
foreach (DataRow row in rightsTable.Rows)
{
Console.WriteLine(row[col.ColumnName].ToString());
}
}
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
Console.WriteLine(row[col]);
}
Veuillez essayer le code suivant ci-dessous:
//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();
}
}
}
Si vous souhaitez modifier le contenu de chaque cellule d'une table de données, nous devons créer une autre table de données et la lier comme suit en utilisant "Importer une ligne". Si nous ne créons pas une autre table, elle lèvera une exception indiquant "La collection a été modifiée".
Considérez le code suivant.
//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);
}
Cela aura toutes les cellules précédant de Paranthesis ({)