You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB.NET和ASP.NET MVC中通过数据模型选择列并获取所有行值

ASP.NET MVC 5 + VB.NET + Entity Framework 数据遍历操作方案

你当前使用的Entity Framework是ORM框架,返回的数据是强类型实体集合,不是ADO.NET中DataSet/DataTable那种按行列索引访问的结构,具体操作步骤如下:

1. 前置准备

自动生成的控制器会默认创建对应数据库上下文的实例,代码一般如下,确认你控制器顶部存在对应声明:

' 替换为你实际的数据库上下文类名
Dim db As New YourDatabaseEntities()

2. 获取整张表数据并转为列表

直接通过上下文的表对应DbSet属性获取数据,调用ToList()即可转为列表:

' 示例对应表为Products,实体类为Product,替换为你实际的表和实体名
Dim productList As List(Of Product) = db.Products.ToList()

3. 循环遍历数据

直接用For Each遍历列表即可获取每一行数据,修改数据后调用保存方法即可同步到数据库:

For Each item As Product In productList
    ' 直接通过实体属性获取对应列的值,示例获取ProductName列
    Dim currentName As String = item.ProductName
    ' 修改对应列的值,示例将价格上调10%
    item.Price = item.Price * 1.1
Next
' 所有修改完成后统一保存到数据库
db.SaveChanges()

4. 按索引获取指定行数据

如果需要获取指定位置的行(比如第0行),直接通过列表索引取值即可:

' 获取第0行数据
Dim firstRow As Product = productList(0)
' 获取第0行对应列的值,示例取第一列Id的值
Dim firstRowFirstColValue As Integer = firstRow.Id

5. 新增数据操作

直接创建新的实体对象,添加到DbSet后保存即可:

Dim newProduct As New Product() With {
    .ProductName = "新商品",
    .Price = 89.9,
    .Stock = 50
}
db.Products.Add(newProduct)
db.SaveChanges()

注意事项

  • 实体类和属性都是EF根据你创建的数据模型自动生成的,和数据库的表、列一一对应,直接调用属性即可,无需按列的索引序号取值
  • 如果需要筛选后再遍历,可以先加查询条件再转列表,示例:Dim cheapProducts = db.Products.Where(Function(p) p.Price < 50).ToList()
  • 所有新增、修改、删除操作完成后,必须调用SaveChanges()才会将变更同步到数据库

内容的提问来源于stack exchange,提问作者Reem Elshenawy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 16:06:03