-4

I have been working for VB6.0 and trying to convert that code into VB.NET.Alomost I tried and succeed but when I am confused to convert this lines of code.

If Not ds.EOF Then
      ds.MoveFirst()
      ds.MoveLast()
End If

Can Any one help me to convert this lines of Code ?any one tell me some online VB6 to VB.NET converter tools.

I have used SQlDataReader instead of the RecordSet.I think while seeing this lines of code I thought ds.MoveFirst(),ds.MoveLast() means moving the cursor postion of the recordSet to last record

4

1 回答 1

2

VB.NET 记录集是DataReader一个SqlDataReader. 它有一种Read方法可以在读取器包含多个块的情况下将读取器推进到下一个数据块,并返回一个bool指示是否有更多数据块要读取的方法。

例如:

Using con = New SqlConnection(connectionString)
    Using cmd = New SqlCommand("SELECT IntCol,StringCol,BoolCol FROM Table WHERE ...", con)
        con.Open()
        Using rdr = cmd.ExecuteReader()
            While rdr.Read()
                Dim IntCol = rdr.GetInt32(0)
                Dim StringCol = rdr.GetString(1)
                Dim BoolCol = rdr.GetBoolean(2)
            End While
        End Using
    End Using
End Using

请注意,ADO.NET 中没有MoveFirstMoveLast

您不应该将阅读器移动到最后一个位置。这意味着即使您只想要最后一条记录,您也会从数据库中读取所有数据。为什么不SELECT TOP 1 ... ORDER BY ...首先使用仅选择最后一个?这就是为什么 aSqlDataReader没有这些方法的原因。

DataTable如果您想在内存中执行此操作,另一种方法是使用 a 。然后您可以通过 访问最后一行table.Rows(table.Rows.Count-1)。您可以加载一个DataTablevia SqlDataAdapter.Fill(DataTable)

于 2012-08-29T10:16:03.120 回答