Vb.net 如何存储数据库结果集?

Vb.net 如何存储数据库结果集?,vb.net,Vb.net,我想知道在vb.net中存储数据库值的最佳方法,例如,我有以下代码: Dim conn As MySqlConnection = Connection() 'Return a connection obj conn.Open() Dim transaction = conn.BeginTransaction Dim cmd = New MySqlCommand("SELECT * FROM tb ORDER BY ID") Dim ResultSet = Cmd.ExecuteRea

我想知道在
vb.net
中存储数据库值的最佳方法,例如,我有以下代码:

 Dim conn As MySqlConnection = Connection() 'Return a connection obj
 conn.Open()

 Dim transaction = conn.BeginTransaction
 Dim cmd = New MySqlCommand("SELECT * FROM tb ORDER BY ID")
 Dim ResultSet = Cmd.ExecuteReader

 If ResultSet.HasRows Then

    Do While ResultSet.Read

       'Here the value should be store

    Loop

 End if

您可以看到我从数据库中获取所有表,现在我希望将每个记录存储在一个允许我像表一样访问它的结构中。数组适合这样做吗?名单?哪种方法最好?

没有最好的方法。你有不同的选择。例如:

  • 作为一个选项,您可以使用
    DataTable
  • 您还可以将值存储在通用
    列表(共T个)
如果您更喜欢使用
DataTable
,则使用
DataAdapter
填充
DataTable
会更简单。通过这种方式,您还可以从
数据表创建
列表(共T个)

使用DataDapter填充DataTable的示例

Dim Connection = "Connection String"
Dim Command = "SELECT * FROM Category"
Dim Adapter = New SqlDataAdapter(Command, Connection)
Dim Table = New DataTable()
Adapter.Fill(Table)
这样,
DataTable
将在结果集中具有列名称的列

此外,您还可以使用
DataTable
以以下方式将数据填入
列表(共T个)

Dim ListOfCategory = Table.Rows.Cast(Of DataRow) _
                          .Select(Function(Row)
                                     Return New Category With 
                                     {
                                         .Id = Row.Field(Of Integer)("Id"),
                                         .Name = Row.Field(Of String)("Name")
                                     }
                                  End Function).ToList()
注意


如果您可以更改编写应用程序的方式,您可以使用实体框架作为处理数据的良好选择。

没有最佳方法。作为一个选项,您可以使用
数据表
也可以将值存储在通用
列表中
嗯,您建议使用数据表?您想在哪里使用结果?除了数据表之外,您还可以考虑像我需要存储结果这样的对象关系映射器,因为下次我需要迭代(列表?)嗯,记录存储的地方。。比较一些特定的领域。不幸的是,我没有实体框架的经验