vb.net - 从数据表中删除多行
问题描述
如何删除数据表中的多行?我想从数据表中删除一些行,例如,从第 10 行到第 35 行。并将更改保存到数据表。
解决方案
您可以使用 LINQ 仅选择所需的行,并将结果复制到数据表:
Module Module1
Function SampleDataTable() As DataTable
Dim dt As New DataTable
dt.Columns.Add("Col1", Type.GetType("System.String"))
For i = 1 To 11
Dim dr = dt.NewRow()
dr(0) = i.ToString() & ChrW(i + 64)
dt.Rows.Add(dr)
Next
Return dt
End Function
Sub ShowDataTable(dt As DataTable)
For Each r As DataRow In dt.Rows
Console.WriteLine(String.Join(", ", r.ItemArray()))
Next
End Sub
Sub Main()
Dim dt = SampleDataTable()
Console.WriteLine("Before:")
ShowDataTable(dt)
' Assuming the first row is to be regarded as row number 1.
Dim firstDelete = 5
Dim lastDelete = 8
dt = dt.AsEnumerable().
Where(Function(r, i) i < firstDelete - 1 OrElse i >= lastDelete).
CopyToDataTable()
Console.WriteLine("After:")
ShowDataTable(dt)
Console.ReadLine()
End Sub
End Module
如果给Where函数提供第二个参数,它将用当前项目的索引(从 0 开始)填充它。
输出:
Before:
1A
2B
3C
4D
5E
6F
7G
8H
9I
10J
11K
After:
1A
2B
3C
4D
9I
10J
11K
推荐阅读
- kubernetes - 如何为部署在 Kubernetes 中的应用程序配置 Acitve/Standby 高可用性
- javascript - Gulp 根据对象数组中的键运行任务
- c - Doxygen 没有收集全局待办事项列表中的所有 \todo
- azure - 将 .Net Core 3.0 Web API 部署到 Azure 应用服务时出错
- c# - 难以理解构建分段树的递归
- javascript - 处理字典并返回 React 中的每个条目
- python - 如何用python绘制一个平行于x轴和z轴的平面?
- python - 根据列表过滤文件夹中的特定文件
- mysql - 根据条件获取总数
- angular - 未调用 spyOn 函数