【问题标题】:ASP/VB6 to .NET conversion helpASP/VB6 到 .NET 的转换帮助
【发布时间】:2010-09-14 20:00:14
【问题描述】:

我正在将一些 VB6 代码更新为 .NET,但遇到了一个小问题。我基本上处于无限循环中,因为我不知道 RecordSet.MoveNext() (VB6) 的 .NET 等价物。我已经使用 DataSet 更新了 RecordSet 的使用

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

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

如何在此处检查 EOF 并退出循环?

【问题讨论】:

    标签: asp.net vb.net vb6


    【解决方案1】:

    我相信您会使用以下内容:

    _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
    

    【讨论】:

    • Scott 使用 .NET 非常方便。
    【解决方案2】:

    这是 C#,但你可以理解...

    foreach(DataRow row in _sqlADP.Fill(_dataSet).Tables[0].Rows)
    {
       // code here
    }
    

    【讨论】:

      【解决方案3】:

      我自己想出了一些办法。这是一个非常简单的解决方案,我可以接受。

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多