2015-06-13 172 views
-1

我遇到了問題。當主窗體加載時,它調用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。不要寫複雜的代碼)

+0

確保重新加載之前,務必清除的ListView項目(或者你會重新讀取數據庫時有重複),並確保您沒有將第二個窗體的實例調用loadSentBox()。您可能需要發佈更多代碼才能在此處獲得一些好的答案。你已經說明了你發佈作品的方法,所以問題將在其他地方。 –

回答

0

試試這個代碼
公用Sub DatabaseToListview(BYVAL STRCON作爲字符串,BYVAL strcmd作爲字符串,BYVAL列表,ListView控件)
名單。 Items.Clear()
昏暗DR1作爲SqlClient.SqlDataReader
昏暗CON作爲新SqlClient.SqlConnection(STRCON)
昏暗我爲整數= 0
昏暗CMD作爲新SqlClient.SqlCommand
昏暗項作爲新的ListViewItem
con.Open()
CMD =新SqlClient.SqlCommand(strcmd,CON)
DR1 = cmd.ExecuteReader
雖然(dr1.Read())
項=新ListViewItem的()
item.Text = DR1(0)的ToString
I = 1
雖然我< dr1.FieldCount
item.SubItems.Add(DR1(ⅰ)的ToString)
I = I + 1
端,而
list.Items.Add(項目)
末雖然
dr1.Close()
con.Close()
末次