我对此进行了研究,但没有发现任何结果符合我的要求。
假设我有一个从 MySql 数据库填充的 DataTable,在另一个函数中,我想访问其中一列并将值分配给一个变量(循环中一次一个)
一些代码来说明我想要做什么:
Dim adapter As New MySqlDataAdapter
Dim dt As New DataTable
Dim intList As New List(Of Integer)
.......
.......
adapter.fill(dt)
.......
.......
dim col = dt.Columns(1)
populate the list here with the contents of the column
编辑我不完全确定Columns(1)
是正确的语法
最佳答案
(引用其他答案)首先,请注意,无需单独声明用于循环某些内容的临时变量。您可以将类型声明为 For...
的一部分:
For Each row As DataRow In Dt.Rows
这不仅仅是编码风格的问题。上面的 row
变量仅存在于 For Each
和 Next
之间。正如在另一个答案中声明的那样,更冗长的方法可能会导致 tmp
、tmp1
等每种不同的类型,这些类型仅用于不同的循环一次。
然后,有许多 linq 方法可以为您获取列表,而无需您编写循环:
Dim carbs = dt.AsEnumerable().
Select(Function(q) q.Field(Of Int32)("Carbs")).
ToList()
使用 Option Infer
,您甚至不需要将 carbs
声明为 List(of Int32)
,但您可以:
Dim carbs As List(Of Int32) = dt.AsEnumerable(). ...
关于mysql - 在代码中访问DataTable中列的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42446628/