0

このコードを使用して、devexpress グリッドコントロールにデータを入力します。すべて問題ありません。

Private Sub tbccegek_SelectedPageChanged(ByVal sender As Object, ByVal e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles tbccegek.SelectedPageChanged
    If tbccegek.SelectedTabPageIndex = 3 Then

        'gcCegek.DataSource = Nothing
        ConnectToDb(fbconn, "public")
        fbcommand.Connection = fbconn
        fbcommand.CommandText = "select cegazon, rovidnev, irsz||' '||varos||' '||utca||' '||hazszam as cim, adoszam, konyvpnem, osszktg_forg from cegek order by cegazon"
        fbadapter.SelectCommand = fbcommand

        fbadapter.Fill(fbdataset)
        fbdataset.Tables(0).TableName = "cegek"
        gcCegek.DataMember = "cegek"
        gcCegek.DataSource = fbdataset

        For i = 0 To fbdataset.Tables(0).Rows.Count - 1
            If fbdataset.Tables(0).Rows(i).Item(5) = "1" Then
                fbdataset.Tables(0).Rows(i).Item(5) = "Összköltség"
            ElseIf fbdataset.Tables(0).Rows(i).Item(5) = "0" Then
                fbdataset.Tables(0).Rows(i).Item(5) = "Forgalmi ktg."
            End If
        Next

        gcCegek.MainView.PopulateColumns()

        columnview = gcCegek.MainView
        columnview.Columns(0).Caption = "Cégazonosító"
        columnview.Columns(1).Caption = "Cégnév (rövid)"
        columnview.Columns(2).Caption = "Cím"
        columnview.Columns(3).Caption = "Adószám"
        columnview.Columns(4).Caption = "K.pnem"
        columnview.Columns(5).Caption = "Ktg.elsz"
        GridView1.BestFitColumns()

        fbconn.Close()
    End If
End Sub

しかし、アプリでレコードを変更した場合は、更新SQLを介してデータベースに保存し、グリッドコントロールがあるタブをもう一度クリックすると、グリッドコントロールの値が変更されていないことがわかります。しかし、データベースには変更された値があります。

ご覧のとおり、タブページ変更イベントでは、最初からグリッドにデータを入力します。私の意見では、変更された値もあるはずです。

あなたは私を助けることができます?

4

1 に答える 1

0

この問題の解決策は、DB からグリッドが接続されている DataSource にデータを再度フェッチすることです。この場合、グリッドはデータが変更されたことを認識し、その内容を更新します。

また、投稿したイベント ハンドラーにブレークポイントを設定し、実際に変更されたデータが DB からフェッチされることを確認することをお勧めします。

また、次のコードを使用する方がより正確です。

if not e.Page Is Nothing andalso e.Page.SelectedTabPageIndex = 3 Then
...
于 2013-01-09T21:08:30.083 に答える