ASP / VB6到.NET的转换帮助

时间:2010-09-14 20:00:15

标签: asp.net vb.net vb6

我正在将一些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并退出循环?

3 个答案:

答案 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的解决方案。