Dim cn As SqlClient.SqlConnection
Sub DataTableTest()
Dim cmd As New SqlClient.SqlCommand(“SELECT ID, Name FROM Table1”, cn)
Try
cmd.CommandType = CommandType.Text
Dim da As New SqlClient.SqlDataAdapter
da.SelectCommand = cmd
Dim dt As New DataTable
dt.PrimaryKey = Nothing
dt.Locale = System.Globalization.CultureInfo.InvariantCulture
da.Fill(dt)
‘(1)Rows.Findメソッドを使用する方法 ==========
‘PrimaryKeyを設定する必要がある
dt.PrimaryKey = New DataColumn() {dt.Columns(“ID”)}
Dim row1 As DataRow = dt.Rows.Find(1)
MessageBox.Show(row1.Item(“Name”).ToString)
‘(2)Selectメソッドを使用する方法 =============
‘PrimaryKeyは不必要だがDataRowの配列で返ってくる
Dim row2() As DataRow = dt.Select(“ID = 1”)
For Each row As DataRow In row2
MessageBox.Show(row.Item(“Name”).ToString)
Next
‘Selectメソッドはソートもできる
Dim row3() As DataRow = dt.Select(“ID < 3”, “Name DESC”)
For Each row As DataRow In row3
MessageBox.Show(row.Item(“Name”).ToString)
Next
‘絞り込み無しのソートのみもできる
Dim row4() As DataRow = dt.Select(Nothing, “Name DESC”)
For Each row As DataRow In row4
MessageBox.Show(row.Item(“Name”).ToString)
Next
Finally
cmd.Dispose()
End Try
End Sub