مشاركة عبر


كيفية القيام بما يلي: الالتزام بمعالجة عمليات التحرير التي تتم تشغيل حدود بيانات عناصر التحكم قبل حفظ بيانات

عند ‏‏تحرير قيم في عناصر تحكم حدود بيانات، المستخدمين يجب على الانتقال خارج السجل الحالي قبول قيمة التي تم تحديثها إلى الأساسية بيانات المصدر التي عنصر التحكم هو مرتبط. عندما تقوم بسحب عناصر من النافذة مصادر البياناتإلى نموذج، ينشئ عنصر أول الذي قمت بإسقاط تعليمات برمجية في حفظ الزر انقر فوق حدث BindingNavigator. وهذا تعليمات برمجية يستدعي EndEditأسلوب BindingSource. ولذلك، الاستدعاء EndEditأسلوب هو التي تم إنشاؤها فقط للأول BindingSourceالتي هو قم بإضافتها إلى النموذج.

EndEditأي إلى تحويل المكالمة التغييرات الموجودة في العملية في أية عناصر تحكم حدود بيانات حاليا تم تحريره. ولذلك، إذا كان عنصر تحكم حدود بيانات لا يزال تركيز وقمت بالنقر فوق حفظ زر، يتم تنفيذ الجميع عمليات التحرير معلقة في عنصر التحكم قبل الحفظ الفعلية ( TableAdapterManager.UpdateAllالأسلوب).

يمكنك تكوين تطبيق الخاص بك إلى auإلىmatically بتنفيذ التغييرات، حتى إذا حاول مستخدم إلى حفظ بيانات دون تنفيذ التغييرات، كجزء من الحفظ العملية.

ملاحظة

إضافة المصمم BindingSource.EndEditإسقاط تعليمات برمجية للعنصر أول فقط إلى نموذج. ولذلك، يجب إلى إضافة سطر من تعليمات برمجية إلى استدعاء في EndEditأسلوب لكل BindingSourceتشغيل النموذج. يمكنك يدوياً إضافة سطر من تعليمات برمجية إلى يتصل EndEditأسلوب لكل BindingSource. بدلاً من ذلك، يمكنك إضافة EndEditOnAllBindingSourcesأسلوب إلى النموذج وتسميته قبل إجراء الحفظ.

ما يلي تعليمات برمجية يستخدم تشغيل مكون Language-Integrated Query (LINQ)استعلام ليكرر الجميع BindingSourceمكونات واستدعاء EndEditأسلوب لكل BindingSourceتشغيل النموذج.

إلى استدعاء EndEdit لكافة مكونات مصدر الربط في نموذج

  1. إضافة التعليمة البرمجية التالية إلى النموذج الذي يحتوي على BindingSourceالمكونات.

    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. قم بإضافة السطر التالي من تعليمات برمجية مباشرة قبل أي استدعاءات إلى حفظ بيانات النموذج ( TableAdapterManager.UpdateAll()الأسلوب):

    Me.EndEditOnAllBindingSources()
    
    EndEditOnAllBindingSources();
    

راجع أيضًا:

المرجع

نظرة عامة حول مكوّن BindingSource

المبادئ

تحديث هرمي نظرة عامة

نظرة عامة حول TableAdapterManager

نظرة عامة حول محول الجدول