مشاركة عبر


ربط بيانات إلى عناصر تحكم في حلول Office

ينطبق على

تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع.

نوع المشروع

  • مشروعات على مستوى المستند

  • مشروعات على مستوى التطبيق

إصدار Microsoft Office

  • نظام 2007 Microsoft Office

  • Microsoft Office 2010

يمكنك ربط عناصر تحكم Windows Forms و عناصر تحكم المضيف على مستند Microsoft Office Word أو ورقة عمل Microsoft Office Excel بمصدر بيانات بحيث تعرض عناصر التحكم البيانات تلقائياً. يمكنك ربط البيانات بعناصر التحكم في المشاريع التي علي مستوي التطبيق و التي علي مستوي المستند .

عناصر تحكم المضيف توسع الكائنات التي في نماذج كائن Word و Excel مثل عناصر تحكم المحتوى في Word و النطاقات المسماة في Excel. لمزيد من المعلومات، راجع نظرة عامة حول العناصر المضيفة و عناصر تحكم المضيف.

كلا من Windows Forms وعناصر تحكم المضيف تستخدم نموذج ربط بيانات Windows Forms الذي يدعم كلاً من ربط البيانات البسيط و ربط البيانات المعقد بمصادر البيانات مثل مجموعات البيانات و جداول البيانات. للحصول على معلومات كاملة حول نموذج ربط البيانات في Windows Forms ، راجع ربط البيانات "و" نماذج Windows.

ارتباط إلى فيديو للحصول على عرض فيديو توضيحي ذي صلة، راجع كيف يمكنني القيام بما يلي: استهلاك بيانات قاعدة البيانات في Excel ؟.

ربط بسيط للبيانات

يوجد ربط بسيط للبيانات عند ربط عنصر تحكم بعنصر واحد من البيانات مثل قيمة في جدول بيانات. على سبيل المثال، عنصر التحكم NamedRange يحتوي علي خاصية Value2 التي يمكن ربطها بحقل في مجموعة بيانات. عندما يتغير الحقل في مجموعة البيانات, يتم تغيير القيمة في النطاق المسمى أيضاً. كل عناصر تحكم المضيف باستثناء عنصر التحكم XMLNodes، تدعم الربط البسيط للبيانات. عنصر التحكم XMLNodes هو مجموعة ولذلك لا يدعم ربط البيانات.

لتنفيذ ربط بسيط للبيانات إلى عنصر تحكم مضيف، قم بإضافة Binding إلى خاصية عنصر التحكم DataBindings() كائن Binding يمثل الربط البسيط بين قيمة خاصة بعنصر التحكم و قيمة عنصر البيانات.

يوضح المثال التالي كيفية ربط خاصية Value2 إلى عنصر بيانات في مشروع علي مستوى المستند. مثال التعليمات البرمجية هذا هو جزء من مثال أكبر متوفر للخاصية DataBindings().

Dim binding1 As New Binding("Value2", ds, "Customers.Names", True)
namedRange1.DataBindings.Add(binding1)
Binding binding1 = new Binding("Value2", ds, "Customers.Names", true);
namedRange1.DataBindings.Add(binding1);

للحصول على الإرشادات التفصيلية التي توضح الربط البسيط للبيانات في مشروع علي مستوي المستند راجع الإرشادات التفصيلية: ربط بيانات بسيطة في مشروع على مستوى المستند و في مشروع علي مستوي التطبيق راجع الإرشادات التفصيلية: ربط بيانات بسيط في مشروع على مستوى التطبيق .

ربط البيانات المعقد

يوجد ربط البيانات المعقد عند ربط خاصية عنصر تحكم بأكثر من عنصر واحد للبيانات مثل أعمدة متعددة في جدول بيانات. عنصر التحكم ListObject لـ Excel هو عنصر تحكم المضيف الوحيد الذي يدعم الربط المعقد للبيانات. هناك أيضاً العديد من عناصر تحكم Windows Forms تدعم الربط المعقد للبيانات مثل عنصر التحكم DataGridView .

لتنفيذ ربط البيانات المعقد، عيّن خاصية عنصر التحكم DataSource إلى كائن مصدر البيانات المعتمد بواسطة ربط بيانات معقد. على سبيل المثال، خاصية DataSource لعنصر التحكم ListObject يمكن ربطها بأعمدة متعددة في جدول البيانات. كافة البيانات في جدول البيانات تظهر في عنصر التحكم ListObject ، ثم كما أن البيانات تتغير في جدول البيانات، فإن ListObject أيضاً يتغير. للحصول على قائمة من مصادر البيانات التى يمكنك استخدامها في ربط البيانات المعقد, راجع مصادر البيانات المعتمدة من قبل Windows النماذج.

مثال التعليمات البرمجية التالي يقوم بإنشاء DataSet مع كائني DataTable و يقوم بملء أحد الجداول بالبيانات. ثم تقوم التعليمات البرمجية بربط ListObject إلى الجدول الذي يحتوي على البيانات. هذا المثال لمشروع Excel علي مستوي المستند.

    Private Sub ListObject_DataSourceAndMember()
        ' Create a DataSet and two DataTables.
        Dim ordersDataSet As New DataSet("ordersDataSet")
        Dim tableCustomers As New DataTable("Customers")
        Dim tableProducts As New DataTable("Products")
        ordersDataSet.Tables.Add(tableCustomers)
        ordersDataSet.Tables.Add(tableProducts)

        ' Add a data to the Customers DataTable.
        tableCustomers.Columns.Add(New DataColumn("LastName"))
        tableCustomers.Columns.Add(New DataColumn("FirstName"))
        Dim dr As DataRow = tableCustomers.NewRow()
        dr("LastName") = "Chan"
        dr("FirstName") = "Gareth"
        tableCustomers.Rows.Add(dr)

        ' Create a list object.
        Dim List1 As Microsoft.Office.Tools.Excel.ListObject = _
            Me.Controls.AddListObject(Me.Range( _
            "A1"), "Customers")

        ' Bind the list object to the Customers table.
        List1.AutoSetDataBoundColumnHeaders = True
        List1.DataSource = ordersDataSet
        List1.DataMember = "Customers"

    End Sub

private void ListObject_DataSourceAndMember()
{
    // Create a DataSet and two DataTables.
    DataSet ordersDataSet = new DataSet("ordersDataSet");
    DataTable tableCustomers = new DataTable("Customers");
    DataTable tableProducts = new DataTable("Products");
    ordersDataSet.Tables.Add(tableCustomers);
    ordersDataSet.Tables.Add(tableProducts);

    // Add a data to the Customers DataTable.
    tableCustomers.Columns.Add(new DataColumn("LastName"));
    tableCustomers.Columns.Add(new DataColumn("FirstName"));
    DataRow dr = tableCustomers.NewRow();
    dr["LastName"] = "Chan";
    dr["FirstName"] = "Gareth";
    tableCustomers.Rows.Add(dr);

    // Create a list object.
    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Controls.AddListObject(
        this.Range["A1", missing], "Customers");

    // Bind the list object to the Customers table.
    list1.AutoSetDataBoundColumnHeaders = true;
    list1.DataSource = ordersDataSet;
    list1.DataMember = "Customers";
}

للحصول على الإرشادات التفصيلية التي توضح الربط المعقد للبيانات في مشروع علي مستوي المستند راجع الإرشادات التفصيلية: ربط بيانات بشكل معقد في مشروع على مستوى المستند و في مشروع علي مستوي التطبيق راجع الإرشادات التفصيلية: ربط بيانات بشكل معقد في مشروع على مستوى التطبيق .

عرض البيانات في المستندات و المصنفات

في المشاريع التي علي مستوى المستند يمكنك استخدام النافذة مصادر البيانات لإضافة عناصر تحكم مرتبطة بالبيانات إلى المستندات أو المصنفات بسهولة ، بنفس الطريقة التي تستخدم لـ Windows Forms. للحصول على مزيد من المعلومات حول استخدام النافذة ‏‎مصادر البيانات‏‎ ، راجع ربط عناصر تحكم النماذج Windows إلى بيانات في ‏‫Visual Studio و النافذة مصادر البيانات.

سحب عناصر التحكم من نافذة مصادر البيانات

يتم إنشاء عنصر تحكم على المستند عند سحب كائن إليه من النافذة ‏‎مصادر البيانات‏‎. يعتمد نوع عنصر التحكم الذي يتم إنشاؤه على ما إذا كنت تقوم بربط عمود واحد من البيانات أو أعمدة متعددة من البيانات.

في Excel، عنصر التحكمNamedRange يتم إنشاؤه على ورقة العمل لكل حقل منفرد، و عنصر التحكم ListObject يتم إنشاؤه لكل نطاق بيانات يتضمن صفوفاً و أعمدة متعددة. يمكنك تغيير هذا الافتراضي عن طريق تحديد الجدول أو الحقل في النافذة مصادر البيانات ثم اختيار عنصر تحكم مختلف من القائمة المنسدلة.

يتم إضافة عنصر التحكم ContentControl إلى الخلية A1. يعتمد نوع عنصر تحكم المحتوى على نوع بيانات الحقل الذى حددته.

ربط البيانات في المشاريع علي مستوي المستند في وقت التصميم

تظهر المواضيع التالية أمثلة ربط البيانات في وقت التصميم:

ربط البيانات في المشاريع علي مستوى التطبيق

في المشاريع على مستوى التطبيق ، يمكنك إضافة عناصر التحكم فقط في وقت التشغيل . تظهر المواضيع التالية أمثلة ربط البيانات في وقت التصميم:

تحديث البيانات المرتبطة بعناصر تحكم المضيف

ربط البيانات بين مصدر البيانات وعنصر تحكم مضيف يتضمن تحديث بيانات ثنائي الاتجاه. في ربط البيانات البسيط ، التغيرات في مصادر البيانات تنعكس بشكل تلقائي في عنصر التحكم المضيف ولكن تتطلب التغييرات في عنصر تحكم المضيف استدعاءً صريحاً لتحديث مصدر البيانات. السبب أنه في بعض الحالات، التغيير في حقل مرتبط ببيانات لا يتم قبوله ما لم يكن مصحوبًا بتغييرات أخرى في حقل مرتبط ببيانات آخر. على سبيل المثال، قد يكون لديك حقلين واحد للعمر وآخر لسنوات الخبرة. لا يمكن للخبرة أن تتجاوز العمر. لا يمكن لمستخدم تحديث العمر من 50 إلى 25 ثم سنوات الخبرة من 30 إلى 10 ما لم يقوم بعمل التغييرات في نفس الوقت. لحل هذه المشكلة،لا يتم تحديث الحقول ذات ربط البيانات البسيط حتى يتم إرسال التحديثات بشكل صريح عن طريق تعليمات برمجية.

لكي يتم تحديث مصدر بيانات من عناصر تحكم المضيف التي تمكن ربط البيانات البسيط، يجب عليك إرسال التحديثات إلى ذاكرة مصدر البيانات (مثل DataSet أو DataTable) و إلى قاعدة البيانات الخلفية إذا كان الحل الخاص بك يستخدم إحداها.

لا تحتاج للتحديث في ذاكرة مصدر البيانات بشكل صريح عند القيام بربط بيانات معقد باستخدام عنصر التحكم ListObject . في هذه الحالة، يتم تلقائياً إرسال التغييرات إلى ذاكرة مصدر البيانات بدون تعليمات برمجية إضافية.

لمزيد من المعلومات، راجع كيفية القيام بما يلي: تحديث مصدر بيانات ببيانات من عنصر تحكم مضيف.

راجع أيضًا:

المهام

كيفية: إنشاء عنصر تحكم منضم بسيط في نموذج Windows

كيفية القيام بما يلي: تحديث بيانات بواسطة محول الجدول استخدام

المبادئ

ربط البيانات "و" نماذج Windows

ربط عناصر تحكم النماذج Windows إلى بيانات في ‏‫Visual Studio

قم بحفظ بيانات في Datasets

التخزين المؤقت للبيانات

موارد أخرى

عنصر تحكم التوافق الأمثل في ADO.NET

البيانات في حلول Office