Aracılığıyla paylaş


Nasıl yapılır: verileri kaydetmeden önce veriye bağlı denetimler üzerinde işlem düzenlemeleri tamamlama

Veriye bağlı denetimler değerleri düzenlerken kullanıcıların güncelleştirilmiş değeri denetimin bağlı olduğu temel veri kaynağı tamamlamaya geçerli kayıt dışı gitmesi gerekir.Öğeleri sürükleyerek Veri Kaynakları Penceresi bir form üzerine bıraktığınız ilk öğeyi kaydetme kodu üretir düğme tıklatma olay, BindingNavigator.Bu kod çağırır EndEdit yöntemi, BindingSource.Bu nedenle, çağrı EndEdit yöntemi yalnızca ilk için üretilen BindingSource forma eklenir.

EndEdit Çağrısı düzenlenmekte olan herhangi bir veriye bağlı denetimler işleminde değişiklikleri kaydeder.Odak ve bu nedenle, bir veri bağlama denetimi hala varsa, ' kaydetmek denetim kaydedilir, önce gerçek kaydetme, tüm düzenlemeler düğmesini ( TableAdapterManager.UpdateAll yöntemi).

Bir kullanıcı veri değişiklikleri kaydetme bir parçası olarak yapılıyor olmadan kaydetmeyi denediğinde bile otomatik olarak, değişiklikleri uygulamanızı yapılandırabilirsiniz işlemi.

[!NOT]

Tasarımcı ekler BindingSource.EndEdit kod yalnızca ilk öğe için bir form üzerine bıraktı.Bu nedenle, bir satırlık bir kod çağırmak için eklemek zorunda EndEdit yöntemi her BindingSource form üzerindeki.Bir satırlık bir kod çağırmak için el ile eklemeniz EndEdit yöntemi her BindingSource.Alternatif olarak, ekleme EndEditOnAllBindingSources forma yöntemi ve bir kayıt yapmadan önce çağırın.

Aşağıdaki kod bir LINQ (dil ile bütünleşik sorgu) tüm yineleme yapmak için sorgu BindingSource bileşenleri ve çağrı EndEdit yöntemi her BindingSource bir form üzerinde.

Bir formdaki tüm BindingSource bileşenleri EndEdit çağrısı yapmak için

  1. Aşağıdaki kodu içeren formu ekleyin BindingSource bileşenleri.

    Private Sub EndEditOnAllBindingSources()
        Dim BindingSourcesQuery = From bindingsources In Me.components.Components 
                      Where (TypeOf bindingsources Is Windows.Forms.BindingSource) 
                      Select bindingsources
    
        For Each bindingSource As Windows.Forms.BindingSource In BindingSourcesQuery
            bindingSource.EndEdit()
        Next
    End Sub
    
    private void EndEditOnAllBindingSources()
    {
        var BindingSourcesQuery =
            from Component bindingSources in this.components.Components
            where bindingSources is BindingSource
            select bindingSources;
    
        foreach (BindingSource bindingSource in BindingSourcesQuery)
        {
            bindingSource.EndEdit();
        }
    }
    
  2. Kod form verileri kaydetmek için hemen aramaların önce aşağıdaki satırı ekleyin ( TableAdapterManager.UpdateAll() yöntemi):

    Me.EndEditOnAllBindingSources()
    
    EndEditOnAllBindingSources();
    

Ayrıca bkz.

Başvuru

BindingSource bileşenlere genel bakış

Kavramlar

Hiyerarşik Update genel bakış

TableAdapterManager genel bakış

TableAdapter genel bakış