Mysql 如何重新加载列表视图?
我遇到了一个问题。当主窗体加载时,它调用loadSentnbox() 它工作得很好!。但是我想从另一个表单更新数据库,然后关闭窗口并更新原始页面上的listview。我在close事件中写入loadSentbox(),但listview没有显示任何内容。Mysql 如何重新加载列表视图?,mysql,vb.net,listview,listbox,refresh,Mysql,Vb.net,Listview,Listbox,Refresh,我遇到了一个问题。当主窗体加载时,它调用loadSentnbox() 它工作得很好!。但是我想从另一个表单更新数据库,然后关闭窗口并更新原始页面上的listview。我在close事件中写入loadSentbox(),但listview没有显示任何内容。 解决办法是什么?(我是vb.net新手。不要编写复杂的代码)试试这段代码 公共子数据库列表视图(ByVal strcon作为字符串,ByVal strcmd作为字符串,ByVal list作为列表视图) list.Items.Clear() D
解决办法是什么?(我是vb.net新手。不要编写复杂的代码)试试这段代码
公共子数据库列表视图(ByVal strcon作为字符串,ByVal strcmd作为字符串,ByVal list作为列表视图)
list.Items.Clear()
Dim dr1作为SqlClient.SqlDataReader
Dim con作为新的SqlClient.SqlConnection(strcon)
尺寸i为整数=0
Dim cmd作为新的SqlClient.SqlCommand
将项目设置为新的ListViewItem
con.Open()
cmd=newsqlclient.SqlCommand(strcmd,con)
dr1=cmd.ExecuteReader
While(dr1.Read())
item=新建ListViewItem()
item.Text=dr1(0).ToString
i=1
而我
i=i+1
结束时
列表.项目.添加(项目)
结束时
dr1.Close()
con.Close()
End Sub确保在重新加载之前清除ListView项(或者从DB重新读取时会有重复项),并且确保没有对第二个表单的实例调用loadSentBox()。您可能需要在这里发布更多代码来获得一些好的答案。您已经说明了您发布的方法是有效的,因此问题将出现在其他地方。
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