You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET表单仅关闭重开后才更新数据问题求助

问题根源与解决方向

核心问题

你的代码中本地DataTable未与数据库更新同步,且ShowData方法每次调用时会重复向DataTable追加数据,导致切换标签页后读取的仍是旧数据。

具体解决方向


1. 更新数据库后同步本地DataTable

执行完UPDATE语句并确认成功后,直接修改类级别的table中对应行的数据,确保本地缓存与数据库一致:

If rowsAffected > 0 Then
    MessageBox.Show("Data Updated Succesfully")
    ' 同步本地DataTable的对应行
    table.Rows(Index)(1) = TxtStaffFirstName.Text
    table.Rows(Index)(2) = TxtStaffLastName.Text
    table.Rows(Index)(3) = TxtStaffAddress.Text
    table.Rows(Index)(4) = TxtStaffCity.Text
    table.Rows(Index)(5) = TxtStaffState.Text
Else
    MessageBox.Show("Data UNSUCCESFULLY Updated")
End If

2. 修复ShowData方法,避免数据追加

每次调用ShowData时,先清空DataTable再重新从数据库加载,确保每次读取的都是最新数据:

Private Sub ShowData(Position As Integer)
    Con.Close()
    Dim Cmd As New SqlCommand("Select * From Staff", Con)
    Dim adaptor As New SqlDataAdapter(Cmd)

    ' 清空旧数据,避免重复追加
    table.Clear()
    adaptor.Fill(table)

    TxtStaffID.Text = table.Rows(Position)(0).ToString()
    TxtStaffFirstName.Text = table.Rows(Position)(1).ToString()
    TxtStaffLastName.Text = table.Rows(Position)(2).ToString()
    TxtStaffAddress.Text = table.Rows(Position)(3).ToString()
    TxtStaffCity.Text = table.Rows(Position)(4).ToString()
    TxtStaffState.Text = table.Rows(Position)(5).ToString()

    Con.Close()
End Sub

3. 处理标签页切换事件,强制刷新数据

如果表单位于TabControl的标签页中,监听标签页切换事件,当切回该表单所在标签时,重新调用ShowData(Index)获取最新数据:

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
    ' 假设当前表单在索引为0的标签页,根据实际情况修改索引值
    If TabControl1.SelectedIndex = 0 Then
        ShowData(Index)
    End If
End Sub

额外优化建议

  • 使用Using语句管理数据库连接和命令对象,避免资源泄漏:
Using Con As New SqlConnection("你的连接字符串")
    Using cmd As New SqlCommand("UPDATE语句", Con)
        ' 执行数据库操作
    End Using
End Using
  • 替代AddWithValue,明确指定参数类型,避免潜在的类型转换问题:
cmd.Parameters.Add("@staffID", SqlDbType.VarChar).Value = TxtStaffID.Text

内容的提问来源于stack exchange,提问作者Kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 00:38:22