簡単な方法はList(Of Car)
、単一の車または単一のIEnumerable(Car)
viaで を使用することcarList.Where(Function(c) c.ID = carID)
です。a を使用して aおよびSqlDataAdapter
を埋めることもできます。または、データベースから単一の車を選択するだけでも、完全なリストが必要ない場合に最も効率的な方法です。DataTable
table.Where(Function(r) r.Field(Of Int32)("ID") = carID)
データ表:
Private Sub fillFormView(carID As Int32)
Using con = New SqlConnection(My.Settings.SqlConnection)
Using da = New SqlDataAdapter("SELECT ID, Name, Type, Model, Engine, Size FROM TCAR WHERE ID=@ID", con)
da.SelectCommand.Parameters.AddWithValue("@ID", carID)
Dim table = New DataTable
da.Fill(table)
fvCarview.DataSource = table
fvCarview.DataBind()
End Using
End Using
End Sub
に 1 台の車を使用したカスタムの Car-Class アプローチを次に示しますList(Of Car)
。
Class Car
Public Property ID As Int32
Public Property Name As String
Public Property Type As String
Public Property Model As String
Public Property Engine As String
Public Property Size As Double
End Class
Private Sub fillFormView(carID As Int32)
Using con = New SqlConnection(My.Settings.SqlConnection)
Using cmd = New SqlCommand("SELECT ID, Name, Type, Model, Engine, Size FROM TCAR WHERE ID=@ID", con)
cmd.Parameters.AddWithValue("@ID", carID)
con.Open()
Using rd = cmd.ExecuteReader()
rd.Read()
Dim carList = New List(Of Car)
Dim car = New Car()
car.ID = rd.GetInt32(0)
car.Name = rd.GetString(1)
car.Type = rd.GetString(2)
car.Model = rd.GetString(3)
car.Engine = rd.GetString(4)
car.Size = rd.GetDouble(5)
carList.Add(car)
fvCarview.DataSource = carList
fvCarview.DataBind()
End Using
End Using
End Using
End Sub