如何在 vb.net 中将数据表转换为对象?

不明白

我有两个数据表(dt1 和 dt2),我想将它们转换为类的对象(data1 和 data2),因此我可以使用 compareTo 方法将其放入绑定列表中。

Public Class MainForm

    Public dt1, dt2 As DataTable
    Public data1, data2 As ISAACService
    Private Sub btnDatei1_Click(sender As Object, e As EventArgs) Handles btnDatei1.Click
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            If File.Exists(OpenFileDialog1.FileName) Then
                dt1 = FileGenerator.ReadFromProtectedFile(OpenFileDialog1.FileName)
                dgv1.DataSource = dt1
            End If
        End If
    End Sub

    Private Sub btnVergleich_Click(sender As Object, e As EventArgs) Handles btnVergleich.Click
        CompareDataTables()
    End Sub




    Private Sub btnDatei2_Click(sender As Object, e As EventArgs) Handles btnDatei2.Click
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            dt2 = FileGenerator.ReadFromProtectedFile(OpenFileDialog1.FileName)
            dgv2.DataSource = dt2
        End If
    End Sub

    Private Sub CompareDataTables()
        data1 = CType(dt1, ISAACService)
        For i = 0 To dt1.Rows.Count - 1
            If i < dt2.Rows.Count Then
                Dim row1 = dt1.Rows(i)
                Dim row2 = dt2.Rows(i)
                data1.CompareTo(data2)
                '
            End If
        Next
    End Sub
End Class

compareTo 方法:

Public Function CompareTo(other As ISAACService) As Integer Implements IComparable(Of ISAACService).CompareTo

        If other.GetType() Is GetType(ISAACService) Then
            other = CType(other, ISAACService)

            If Me.UANR > other.UANR Then
                Return 1
            ElseIf Me.UANR < other.UANR Then
                Return -1
            Else
                Return 0
            End If
        End If
        Return 0

    End Function

对象的类:

Public MustInherit Class ISAACServiceBase


    ReadOnly Property KostenArt As String
    ReadOnly Property UANR As String
    ReadOnly Property Überbegriff As String
    ReadOnly Property Benennung As String
    ReadOnly Property Anzahl As Double
    ReadOnly Property Einheit As String
    ReadOnly Property Einzelkosten As Double
    ReadOnly Property Gesamtmenge As Integer
    ReadOnly Property Z As String

    Public Sub New()

    End Sub

    Public Sub New(kArt As String, uNR As String, üBegriff As String, bnung As String, anzl As Double, enht As String, eKosten As Double, gMenge As Integer, zz As String)
        KostenArt = kArt
        UANR = uNR
        Überbegriff = üBegriff
        Benennung = bnung
        Anzahl = anzl
        Einheit = enht
        Einzelkosten = eKosten
        Gesamtmenge = gMenge
        Z = zz
    End Sub

End Class

如果您需要任何进一步的信息,请告诉我。感谢您的帮助!

玛丽

这是一个进行转换的函数。当然,我不知道这些DataTable字段是否与类的属性对齐。您可能需要更改row.

Private Function CovertDataTableToListOfISAACService(dt As DataTable) As List(Of ISAACService)
    Dim lst As New List(Of ISAACService)
    For Each row As DataRow In dt.Rows
        Dim ISAAC As New ISAACService(row(0).ToString, row(1).ToString, row(2).ToString, row(3).ToString, CDbl(row(4)), row(5).ToString, CDbl(row(6)), CInt(row(7)), row(8).ToString)
        lst.Add(ISAAC)
    Next
    Return lst
End Function

您的比较函数开始验证other. other 已经保证是ISAACService因为这是参数的类型。我不确定你在比较什么,但这不是问题所问的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在vb.net的html表中将多行数据表列转换为多行

如何在.net C# 中的数据表中将 0 转换为“-”

如何在excel宏或VB.Net中将JSON数据转换为xml数据

如何在 VB.Net 中将用 ~ 分隔的文本文件解析为数据表或数组

如何在 VB.NET 中使用 Linq 从数据表中获取数据透视表?

如何在asp.net + vb中将日期时间数据类型转换为字符串

如何在 VB.NET 中将几何插入 postegreSQL 表?

如何在vb.net中使用linq从数据表中查询单个值

如何在vb.net中增加数据表的名称

如何在VB.NET中返回IEnumerable数据表

如何在vb.net中将双精度转换为时间

如何在vb.net中将字符串列表转换为单个列表?

如何在 VB.NET 中将浮点数转换为十六进制?

允许VB.NET应用将Excel文件转换为数据表

如何在Javascript中将数据表转换为Json

如何在vb.net中将类型为“ System .__ ComObject”的COM对象转换为接口类型为“ ESRI.ArcGIS.Carto.FeatureLayer”?

如何在VB.NET中将日期解析为iso

如何在VB.NET中克隆UserPrincipal对象

如何在RDLC VB.NET中添加行表

如何在vb.net中检索mysql数据?

如何从数据表vb.net向SQL Server数据库插入值

如何查询本地数据表并将信息返回到VB.net中的数据表

如何在 vb.net webform 中将列表对象绑定到 asp:DropDownList

我如何总计数据表vb.net的总和列和行

如何将日期时间值格式化为数据表 vb.net

为什么我会收到“未找到类型 'String' 上的公共成员 'Field' 的消息。” 在 VB.Net 中将我的数据表行转换为 List(Of Object) 时出现异常?

如何将axapta容器转换为.net中的数据表?

JSON - 转换为 VB.NET 对象

如何在VB.Net中将带有整数值的SQL WHERE子句放在VB.Net中?