Warum ist ListView nicht erfrischend?

Hallo, ich bin beim einfügen in eine Tabelle Lesen und alles wieder in eine ListView Wenn ich wieder das Programm öffnen, das ich die Daten sehen, die ich gerade gespeichert, in meinem ListView, aber dieser Datensatz nicht angezeigt wird in meinem ListView beim speichern (es wird zwar gespeichert in der Tabelle).

Ich bin mit

 listView.Update() 

sowie

 listView.Refresh() 

aber es scheint nicht zu funktionieren. Ich bin nur mit einem SELECT Abfrage zum Lesen von Daten aus der datareader und speichern Sie es in meinem listView wie folgt (die einwandfrei funktioniert)

Das problem ist nur, dass das listView-Steuerelement nicht aktualisieren sofort, aber es funktioniert, wenn ich schließen/öffnen Sie das Programm

hier ist der code, den ich verwende, am Ende meiner Save-Methode. grundsätzlich sind diese beiden Methoden aufgerufen werden,

  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

Vielen Dank für Ihre Hilfe

  • Diese beiden Methoden nur für das Neuzeichnen des Steuerelements mit seinen aktuellen Daten. Sie müssen füllen Sie es wieder mit neuen Daten.
  • Direkt nachdem der Benutzer auf speichern klickt (das einfügen), bin ich den Aufruf von zwei Methoden. Einer von Ihnen ist der neu-Aufbau der listView und der andere ist das Lesen der neuen Daten aus den Tabellen
  • Zeigt code könnte helfen..
  • Post die Methode, die Sie verwenden Sie zum füllen des ListView-Zitat und der code, den Sie verwenden, nach drücken von "speichern".
  • Sie sind mit Windows Forms, richtig?
  • Nur aktualisiert es mit dem code
  • Nur aktualisiert der code

InformationsquelleAutor user1683987 | 2013-03-15
Schreibe einen Kommentar