【发布时间】:2013-03-15 13:56:36
【问题描述】:
您好,我正在插入表格,然后将所有内容读回 ListView在保存时(虽然它保存在表中)。
我正在使用
listView.Update()
还有
listView.Refresh()
但它似乎不起作用。我只是使用SELECT 查询从datareader 读取数据并将其存储在我的listView 中,如下所示(工作正常)
唯一的问题是 listView 没有立即刷新,但是当我关闭/打开程序时它可以工作
这是我在 Save 方法末尾使用的代码。基本上这两种方法都被调用了
Private Sub SetColumns()
Dim lstpenalty As New ListView()
lstpenalty.Items.Clear()
lstpenalty.Visible = True
lstpenalty.Bounds = New Rectangle(New Point(390, 55), New Size(560, 379))
lstpenalty.Name = "lstpenalty"
lstpenalty.FullRowSelect = True
lstpenalty.View = View.Details
lstpenalty.GridLines = True
lstpenalty.Items.Clear()
lstpenalty.Columns.Add("a", 75)
lstpenalty.Columns.Add("b", 70)
lstpenalty.Columns.Add("c", 105)
lstpenalty.Columns.Add("d", 98)
lstpenalty.Columns.Add("e", 90)
lstpenalty.Columns.Add("f", 105)
Me.Controls.Add(lstpenalty)
LoadPenaltyList(lstpenalty)
End Sub
Private Sub LoadPenaltyList(ByRef listView As ListView)
Dim gDR As OracleDataReader
Dim cmd As New OracleCommand
Dim lstpenaltyview As New ListViewItem
Try
cnn.Connect_to_Oper_Agent()
cmd.Connection = cnn.cnn
listView.Items.Clear()
cmd.CommandText = " select a," & _
"b, " & _
"c, " & _
"d," & _
"e," & _
"f" & _
" FROM myTable" & _
" commit"
gDR = cmd.ExecuteReader()
While gDR.Read
lstpenaltyview = listView.Items.Add(Null_To_String(gDR("a")))
lstpenaltyview.SubItems.Add(gDR("b"))
lstpenaltyview.SubItems.Add(gDR("c"))
lstpenaltyview.SubItems.Add(gDR("d"))
lstpenaltyview.SubItems.Add(gDR("e"))
lstpenaltyview.SubItems.Add(gDR("f"))
End While
listView.Update()
Catch ex As Exception
MsgBox("There was an error... -> " & ex.ToString)
Finally
cmd.Dispose()
cnn.Close_Conn()
End Try
End Sub
感谢您的帮助
【问题讨论】:
-
这两种方法只是用当前数据重绘控件。您需要用新数据再次填充它。
-
在用户单击保存(执行插入)之后,我正在调用两种方法。其中一个是重新构建 listView,另一个是从表中读取新数据
-
显示代码可能会有所帮助..
-
发布您最初用于填充 ListView 的方法以及您在按保存后使用的代码。
-
@user1683987 您使用的是 Windows 窗体,对吧?