Public Class Form1
Dim rnd As New Random
Public Sub New()
InitializeComponent()
Randomize()
gridControl1.DataSource = CreateDataInfo(10)
End Sub
Private Function CreateDataInfo(ByVal Row As Integer) As DataTable
Dim dt As New DataTable
dt.Columns.Add("名称", GetType(String))
dt.Columns.Add("数值", GetType(Integer))
For i = 0 To Row
dt.Rows.Add("名称" & i, rnd.Next(1, 100))
Next
Return dt
End Function
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Me.gridControl1.DataSource = CreateDataInfo(10)
Dim n As Integer
n = rnd.Next(5, 15)
Me.GridControl2.DataSource = CreateDataInfo(n)
Me.Text = n
Dim dt1 As DataTable = Me.gridControl1.DataSource
Dim dt2 As DataTable = Me.GridControl2.DataSource
Dim dt3 As DataTable = dt2.Clone
dt3.Columns.Add("相差", GetType(Integer))
dt2.AsEnumerable().GroupJoin(dt1.AsEnumerable(),
Function(p) p.Field(Of String)("名称"),
Function(p) p.Field(Of String)("名称"),
Function(p, q)
Dim dr = dt3.Rows.Add(p.ItemArray)
If q.Count() > 0 Then dr("相差") = p.Field(Of Integer)("数值") - q.FirstOrDefault().Field(Of Integer)("数值")
Return dr
End Function).ToList()
GridControl3.DataSource = dt3
End Sub
End Class
vb.net Linq 给出两个表求差值
最新推荐文章于 2023-07-19 13:54:15 发布