我有兩個DataTables(dt1和dt2),我想把它們轉換成一個類的物件(data1和data2),這樣我就可以使用compareTo方法并把它放入一個系結的List中。
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. 點擊
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
If File.Exists(OpenFileDialog1.FileName) Then
dt1 = FileGenerator.ReadFromProtectedFile(OpenFileDialog1.FileName)
dgv1.DataSource = dt1
結束 If
End If
End Sub
Private Sub btnVergleich_Click(sender As Object, e As EventArgs) Handles btnVergleich. 點擊
比較資料表()
End Sub
Private Sub btnDatei2_Click(sender As Object, e As EventArgs) Handles btnDatei2。 點擊
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
dt2 = FileGenerator.ReadFromProtectedFile(OpenFileDialog1.FileName)
dgv2.DataSource = dt2
結束 If
結束 子
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
下一步 下一步
結束 子
End Class
compareTo方法:
Public Function CompareTo(other As ISAACService) As Integer Implements IComparable(Of ISAACService)。 比較到
If other.GetType() Is GetType(ISAACService) Then
other = CType(other, ISAACService)
If Me.UANR > other.UANR Then
Return 1
ElseIf Me.UANR < other.UANRThen
Return -1
Else
Return 0
End If
End If
Return 0
結束 功能
物件的類別:
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()
結束 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
價值 = enht
價值=eKosten
Gesamtmenge = gMenge
Z = zz
End Sub
結束 類
如果你需要任何進一步的資訊,請讓我知道。謝謝你的幫助!
uj5u.com熱心網友回復:
這里有一個函式來做轉換。當然,我不知道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)
下一步。
Return lst
End Function[/span
你的比較函式開始驗證other的型別。
other已經被保證為ISAACService,因為那是引數的型別。我不確定你要將other與什么相比較,但這不是問題的關鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/325297.html
標籤:
