gpt4 book ai didi

mysql - 比较数据表/识别相同的数据表

转载 作者:行者123 更新时间:2023-11-29 08:14:51 25 4
gpt4 key购买 nike

我正在使用 VB.net 和 mysql,我有一个函数可以用 mysql 内容填充数据表,然后将其(根据需要)发布到 ListView 。此功能目前位于每 5 秒激活一次的计时器上,不幸的是,这对我的软件的拖放功能造成了可怕的破坏。

解决方案:我决定在将内容填充到 ListView 后将内容从事件数据表复制到另一个数据表进行比较,每次从mysql数据库获取数据时将其保存到数据表并比较两者数据表 - 如果它们不相同,则软件应该运行该功能,但是如果它们相同,则没有理由使用相同的确切数据更新 ListView 。

    Public pendrun As New DataTable
Public postrun As New DataTable

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
con.ConnectionString = "server=localhost;" _
& "user id=user;" _
& "password=password;" _
& "database=DMT"
adptr = New MySqlDataAdapter("Select * from data", con)
Try
adptr.Fill(pendrun)
Catch err As Exception
Dim strError As String = "Exception: & err.ToString()"
End Try
if pendrun <> postrun then
ListView2.Items.Clear()
pendrun.Clear()

' commands to add
' pendrun datatable information
' to listview

postrun = pendrun 'to transfer data to the holding datatable

end if

问题是

if pendrun <> postrun then

不是比较数据表的有效方法。如何确定数据表是否相同(所有行和列都相同)

最佳答案

对于您定义的类型,没有对“相同”的内置理解。您需要编写该逻辑。

本质上,您需要构建一个函数,该函数接受两个 DataTable 作为输入,根据您定义的任何业务逻辑对它们进行比较,并返回一个 Boolean 指示是否或他们没有通过这种逻辑。像这样的事情:

Function TablesAreEqual(ByVal firstTable As DataTable, ByVal secondTable As DataTable) As Boolean 
' Compare your tables, probably by looping through rows/values
Return areEqual
End Function

然后您可以在比较中使用该函数:

If TablesAreEqual(pendrun, postrun) Then

关于mysql - 比较数据表/识别相同的数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20842778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com