即时通讯使用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