Помощь преобразования ASP / VB6 в .NET - PullRequest
0 голосов
/ 15 сентября 2010

Я обновляю некоторый код VB6 до .NET и столкнулся с небольшой проблемой.Я в основном в бесконечном цикле, потому что я не знаю .NET эквивалент RecordSet.MoveNext() (VB6).я обновил использование RecordSet с DataSet

While Not _sqlADP.Fill(_dataSet) = 0
    // code
    // more code

    // original VB6 code had _recordSET.MoveNext() here.
End While

как мне проверить EOF здесь и выйти из цикла?

Ответы [ 3 ]

4 голосов
/ 15 сентября 2010

Полагаю, вы бы использовали что-то вроде следующего:

_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
2 голосов
/ 15 сентября 2010

Это C #, но вы можете понять ...

foreach(DataRow row in _sqlADP.Fill(_dataSet).Tables[0].Rows)
{
   // code here
}
0 голосов
/ 15 сентября 2010

Я что-то понял сам.это очень простое решение, с которым у меня все в порядке.

Dim rowCount = _sqlADP.Fill(_dataSet)
While Not rowCount = 0
    // code
    // more code

    // original VB6 code had _recordSET.MoveNext() here.

    rowCount = rowCount - 1
End While

Редактировать: не важно, я пошел с решением Скотта Митчелла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...