即時通訊使用listview在vb.net新的,但我設法顯示來自mysql數據庫的數據,但不知何故,我沒有一個錯誤,但somethings奇怪的事情發生在我的列表視圖。在表單加載中顯示數據從數據庫的列表視圖
在列表視圖雙打每次我退出並重新打開它的列,但如果我關閉整個應用程序並重新運行它,它恢復正常,我點擊每一次再翻一番退出並再次打開庫存。
這是表單加載的代碼。
Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
Call LVWloader()
Call Locker(True)
Call objLocker(False)
With ListView1.Columns
.Add("Semen ID", 50, HorizontalAlignment.Center)
.Add("Bullname", 150, HorizontalAlignment.Center)
.Add("Breed", 150, HorizontalAlignment.Center)
.Add("Quantity", 50, HorizontalAlignment.Center)
.Add("Location", 50, HorizontalAlignment.Center)
.Add("Date Purchased", 50, HorizontalAlignment.Center)
End With
For i As Integer = 0 To ListView1.Columns.Count - 1
ListView1.Columns(i).Width = -2
Next i
End Sub
,這是裝載代碼
Public Sub LVWloader()
Dim myCommand As New MySqlCommand
Dim myReader As MySqlDataReader
Dim conn As MySqlConnection
conn = New MySqlConnection
conn.ConnectionString = "server = localhost;username= root;password= a;database= semenis"
Try
conn.Open()
Catch mali As MySqlException
MsgBox("connot establish connection")
End Try
ListView1.Items.Clear()
With myCommand
.Connection = conn
.CommandText = "Select * from inventory"
End With
myReader = myCommand.ExecuteReader
While myReader.Read()
With ListView1
.Items.Add(myReader(0))
With .Items(.Items.Count - 1).SubItems
.Add(myReader.Item(1))
.Add(myReader.Item(2))
.Add(myReader.Item(3))
.Add(myReader.Item(4))
.Add(myReader.Item(5))
End With
End With
End While
End Sub
我覺得代碼錯誤來自對。新增列表視圖,也許那裏有做這另一種方式?
IM使用vb.net和MySQL數據庫
感謝,
爲什麼要使用'ListView'呢?爲什麼不填充一個'DataTable'並將其簡單地綁定到'DataGridView'? – jmcilhinney
我在其他表上使用datagridview,但在這一個我想我想更多地探討如何正確使用listview, – User2341
至於爲什麼發生這種情況,我猜這是因爲你顯示的是同一個實例多次,每次執行'Load'事件處理程序。如果你要在'Load'上構造'ListView',那麼確保在關閉它之後處理這個實例,然後在每次你想顯示它時創建一個新的實例。如果您發佈打開此表單的代碼,它可能會幫助我們。 – jmcilhinney