我使用VS 2010多年后安装了VS 2012,我甚至无法再通过表行进行循环(这在以前是轻而易举的),这对我的项目来说绝对至关重要。
我尝试了很多方式来调用DataGrid.Rows
,但用户根本无法再使用它了,所以我试图找到一个解决方法。
以下是我的想法,但第二部分并不适合我。
foreach (TableRow row in MyDatabaseDataSet.Tables["Table1"].Rows)
{
//Pesky lengthy non-working code supposed to generate
//controls dependent on row cell value
}
只是为了让事情变得更简单(代码不能正常工作,在这里发布它会是反建设性的。相反,让我们尝试获取一个消息框来显示该行的第二列中单元格的值在
但没有任何事情。
我尝试了许多我能想到的方法,包括:
MessageBox.Show(row.Cells[2].Value);
MessageBox.Show(row.Cells[2].Text);
但它根本不适合我!
甚至根本不想运行该项目。
如何循环遍历DataTable
甚至Datagrid
中的所有行?
PS:我忘了提及,但我还在上面写的foreach语句之前的代码中添加了加载数据段。
答案 0 :(得分:5)
也许我忽略了一些简单的事情,但DataTable.Rows
会返回DataRowCollection
,其中包含DataRows
而不是TableRows
。
所以而不是
foreach (TableRow row in MyDatabaseDataSet.Tables["Table1"].Rows)
{
// ...
}
这样:
foreach (DataRow row in MyDatabaseDataSet.Tables["Table1"].Rows)
{
// ...
}