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 にはMoveFirst
orがないことに注意してください。MoveLast
リーダーを最後の位置に移動しないでください。つまり、最後のレコードだけが必要な場合でも、データベースからすべてのデータを読み取ることになります。SELECT TOP 1 ... ORDER BY ...
そもそも使用して最後のものだけを選択してみませんか? SqlDataReader
これが、これらのメソッドがない理由です。
別の方法はDataTable
、メモリ内でそれを行いたい場合に a を使用することです。その後、最後の行にアクセスできますtable.Rows(table.Rows.Count-1)
。DataTable
ビアをロードできますSqlDataAdapter.Fill(DataTable)
。