通过For Next循环迭代DataTable中的Integer列?

时间:2016-06-13 19:50:43

标签: vb.net for-loop datatable

我正在使用For Next循环来遍历数据表的列。其中一列是Booleans列,For Next代码可以使用。但是,迭代整数列的相同代码不起作用(?)。

我得到的错误我认为我理解虽然如何修复它?或者我可以简单地不使用For Next循环遍历整数行?我是否首先需要将该整数列转储到一个数组中,然后使用它?我希望这尽可能简单吗?我将在本专栏中使用的大部分数据是50个元素。

我在尝试遍历Integers列时遇到的错误是:“无法将类型为'System.Int32'的对象强制转换为'System.Collections.IEnumerable'。

$I->click('Reports');
$I->click('Most recent contacts (PDF)');
$I->selectOption('form select[name="select_center[center]"]', 'Truckee');
$I->click('Submit');
$I->wait(5);
$I->see('Open with');

1 个答案:

答案 0 :(得分:1)

正确的方法是遍历Rows集合

Dim row As DataRow
For Each row In sourceTable.Rows
   Try
      Dim boolValue as Bool = Convert.ToBoolean(row.Item(0))
      ....

第二个循环是

For Each row In sourceTable.Rows
   Try
      Dim intValue = Convert.ToInt32(row.Item(3))
      ....

要使用For Each(或简单的For),您需要有一个集合来迭代。 Rows是一个集合,而Rows(0).Item(0)表示第一行中位置0的字段。显然,这不是一个集合。