如何存储数据库结果集?

时间:2016-01-10 15:42:52

标签: 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.ExecuteReader

 If ResultSet.HasRows Then

    Do While ResultSet.Read

       'Here the value should be store

    Loop

 End if

你怎么看我从我的数据库中取出所有表,现在我想将每个记录存储在一个允许我像表一样访问它的结构中。这个阵列很适合吗?一个列表?哪种方式最好?

1 个答案:

答案 0 :(得分:1)

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

  • 作为选项,您可以使用DataTable
  • 您还可以将值存储在通用List(Of T)

如果您更喜欢使用DataTable,则使用DataAdapter填充DataTable会更加简单。这样,您还可以从List(Of T)创建DataTable

使用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将在结果集中包含列名称的列。

您也可以使用List(Of T)DataTable方式填写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() 数据:

176023680645013966468226945392411250770384383304492191886725992896575345044216019675

注意

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