【问题标题】:How to reload list view?如何重新加载列表视图?
【发布时间】:2015-08-29 14:43:53
【问题描述】:

我遇到了问题。当主窗体加载时,它调用 loadSentnbox()

Public Sub loadSentbox()
    logmysql()
    Try

        Dim sqlquery As String
        logmysql()
        sqlquery = "SELECT * FROM files_tr WHERE `from` = '" + user + "'"
        mysqlCommand = New MySqlCommand(sqlquery, mysqlCon)
        'Open the Db
        mysqlCon.Open()
        mysqlReader = mysqlCommand.ExecuteReader
        While mysqlReader.Read
            Dim i As ListViewItem
            ltv_sentbox.BeginUpdate()
            i = ltv_sentbox.Items.Add(mysqlReader.Item("to"))
            i.SubItems.Add(mysqlReader.Item("filename"))
            i.SubItems.Add(mysqlReader.Item("size"))
            i.SubItems.Add(mysqlReader.Item("status"))
            ltv_inbox.Update()
            ltv_inbox.EndUpdate()
        End While
        mysqlCon.Close()
        'ltv_sentbox.Refresh()
    Catch ex As Exception
        MsgBox(ex.ToString, MsgBoxStyle.Critical)
    End Try
End Sub

效果很好!但我想从另一个表单更新数据库,然后关闭窗口并更新原始页面上的列表视图。我在关闭事件中写了 loadSentbox(),但 listview 什么也没显示。 解决办法是什么 ? (我是 vb.net 的新手。不要写复杂的代码)

【问题讨论】:

  • 确保在重新加载之前清除 ListView 项(否则从数据库重新读取时会出现重复项),并确保您没有调用 loadSentBox() 到实例的第二种形式。您可能需要发布更多代码才能在这里获得一些好的答案。您已说明您发布的方法有效,因此问题将出在其他地方。

标签: mysql vb.net listview listbox refresh


【解决方案1】:

试试这个代码
Public Sub DatabaseToListview(ByVal strcon As String, ByVal strcmd As String, ByVal list As ListView)
list.Items.Clear()
将 dr1 调暗为 SqlClient.SqlDataReader
Dim con 作为新的 SqlClient.SqlConnection(strcon)
将 i 调暗为整数 = 0
将 cmd 调暗为新的 SqlClient.SqlCommand
将项目暗淡为新的 ListViewItem
con.Open()
cmd = 新的 SqlClient.SqlCommand(strcmd, con)
dr1 = cmd.ExecuteReader
While (dr1.Read())
item = 新的 ListViewItem()
item.Text = dr1(0).ToString
我 = 1
虽然我 item.SubItems.Add(dr1(i).ToString)
我 = 我 + 1
结束时
list.Items.Add(item)
结束时
dr1.Close()
con.Close()
结束子

【讨论】:

    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2020-11-17
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多