Привет, я вставляю в таблицу, а затем читаю все обратно в ListView
Когда я снова открываю программу, я вижу данные, которые я только что сохранил в своем ListView
, но эта запись не отображается в моем ListView
во время сохранения (хотя он сохраняется в таблице).Почему ListView не освежает?
Я использую
listView.Update()
, а также
listView.Refresh()
, но это не похоже на работу. Я просто с помощью SELECT
запроса читать данные с datareader
и хранить его в моем listView
следующим образом (который работает правильно)
Единственная проблема заключается в том, что ListView сразу не обновляется, но она работает, когда я закрываю/откройте программу
вот код, который я использую в конце моего метода сохранения. в основном эти два метода дозвонились
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
Спасибо за вашу помощь
Эти два метода просто перерисовать управления с его текущими данными. Вам нужно снова заполнить его новыми данными. – CathalMF
Сразу после того, как пользователь нажимает кнопку «Сохранить» (что делает вставку), я вызываю два метода. Один из них перестраивает listView, а другой считывает новые данные из таблиц. – user1683987
Показанный код может помочь. –