我正在将一些VB6代码更新为.NET,并遇到了一个小问题。我基本上处于无限循环中,因为我不知道.NET等价于RecordSet.MoveNext()
(VB6)。我已经使用DataSet更新了RecordSet的使用
While Not _sqlADP.Fill(_dataSet) = 0
// code
// more code
// original VB6 code had _recordSET.MoveNext() here.
End While
我如何在这里检查EOF并退出循环?
答案 0 :(得分:4)
我相信你会使用以下内容:
_sqlADP.Fill(_dataSet)
For Each row As DataRow In _dataSet.Tables(0).Rows
Next
您可能还想考虑使用DataReader,它可能更类似于VB6 RecordSet,因为我认为默认情况下ADO RecordSet具有只读,仅向前行为。如果您使用的是DataReader,那么您的循环将如下所示:
While _dataReader.Read()
End While
答案 1 :(得分:2)
这是C#,但你可以得到这个想法......
foreach(DataRow row in _sqlADP.Fill(_dataSet).Tables[0].Rows)
{
// code here
}
答案 2 :(得分:0)
Dim rowCount = _sqlADP.Fill(_dataSet)
While Not rowCount = 0
// code
// more code
// original VB6 code had _recordSET.MoveNext() here.
rowCount = rowCount - 1
End While
编辑:没关系,我选择了Scott Mitchell的解决方案。