1

在使用 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);

但这对我根本不起作用!

甚至根本不想运行该项目。

如何遍历 aDataTable甚至 a中的所有行Datagrid

PS:我忘了提,但我还在上面写的 foreach 语句之前的代码中添加了 Load Data 段。

4

2 回答 2

5

也许我忽略了一些简单的东西,但DataTable.Rows返回了一个不DataRowCollection包含的内容。DataRowsTableRows

所以而不是

foreach (TableRow row in MyDatabaseDataSet.Tables["Table1"].Rows)
{
    // ...
}

这:

foreach (DataRow row in MyDatabaseDataSet.Tables["Table1"].Rows)
{
    // ...
}
于 2013-03-28T22:54:31.780 回答
0

DataTable.Rows返回 的实例DataRowCollection,其中包含DataRow对象,而不是TableRow

foreach( DataRow row in MyDatabaseDataSet.Tables["Table1"].Rows)
{
   // code here
}
于 2013-03-28T22:55:03.583 回答