مشاركة عبر


ربط كائن في ‏‫Visual Studio

يوفر ‏‫Visual Studio وقت التصميم إلى ols للعمل مع كائنات cusإلىm (كما مقابل إلى المصادر بيانات الأخرى مثل وحدات datasets والخدمات) كمصدر للبيانات في تطبيق الخاص بك.

كائن متطلبات

أدوات مطلب الكائنات المخصصة للعمل مع تصميم بيانات فقط في ‏‫Visual Studio هي التي يحتاجها الكائن خاصية عامة واحدة على الأقل.

بشكل عام، cusإلىm كائنات لا تتطلب أية واجهات محددة أو construcإلىrs أو السمات إلى كمصدر بيانات لتطبيق ما. ومع ذلك، إذا كنت ترغب في يسحب الكائن من الإطار موارد بيانات إلى سطح تصميم لإنشاء تحكم محدود للبيانات، وإذا كان الكائن بتطبيق ITypedListأو IListSourceالواجهة، يجب أن يحتوي الكائن على الدالة الإنشائية افتراضي (التي هو، على الدالة الإنشائية بدون معلمات). وإلا، لا يمكن إنشاء مثيل ‏‫Visual Studio بيانات المصدر الكائن، وسيعرض خطأ عندما تقوم بسحب العنصر إلى سطح التصميم.

أمثلة على استخدام مصادر بيانات كـ لالكائنات مخصصة

بينما هناك طرق countless إلى تطبيق منطق تطبيق الخاص بك عند العمل مع الكائنات كمصدر بيانات، هناك بعض العمليات القياسية التي يمكن أن تكون مبسطة باستخدام الكائنات محول الجدول Studio–generated Visual Basic. توضح هذه الصفحة كيف إلى تنفيذ هذه معالجات القياسية التي تستخدم TableAdapters؛ فإنه غير مخصص كدليل لإنشاء الكائنات cusإلىm الخاص بك. ل مثال، سيتم عادة إجراء العمليات القياسية التالية بغض النظر عن تطبيق المعين من الكائنات الخاصة بك، أو منطق تطبيق:

  • تحميل البيانات في الكائنات (عادة من قاعدة بيانات).

  • قم بإنشاء مجموعة مكتوب من الكائنات.

  • إضافة كائنات إلى و إزالة الكائنات من مجموعة.

  • عرض بيانات الكائن إلى المستخدمين في نموذج.

  • تغيير/‏‏تحرير بيانات في كائن.

  • قم بحفظ البيانات من الكائنات إلى قاعدة بيانات.

ملاحظة

الترتيب ل underst أفضل و، و توفير سياق للأمثلة تشغيل هذه الصفحة، نوصي أن تقوم بإكمال ما يلي: الإرشادات التفصيلية: الاتصال إلى البيانات في الكائنات (Windows Forms). معاينة التي تنشئ الكائنات التي تمت مناقشتها في هذه الصفحة تعليمات.

قم بتحميل بيانات في الكائنات

على سبيل المثال، تقوم بتحميل بيانات في الكائنات استخدام TableAdapters. بشكل افتراضي، يتم تاريخ الإنشاء TableAdapters مع نوعين من طرق بإحضار البيانات من قاعدة بيانات ونشر جداول البيانات.

  • TableAdapter.Fillأسلوب تعبئة جدول بيانات موجود باستخدام البيانات التي يتم إرجاعها.

  • TableAdapter.GetDataأسلوب إرجاع جدول بيانات جديد معبأ بالبيانات.

أن أسهل طريقة لتحميل الكائنات المخصصة الخاصة بك مع بيانات هو لاستدعاء TableAdapter.GetDataالطريقة، يتكرر خلال مجموعة صفوف في جدول بيانات الذي يتم إرجاعه، ويملأ كل كائن باستخدام قيم الموجودة في كل صف. يمكنك إنشاء GetDataأسلوب الذي يرجع إليه جدول بيانات populated لأي استعلام تمت الإضافة إلى محول الجدول.

ملاحظة

أسماء ‏‫Visual Studio محول الجدول استعلامات Fillو GetDataبواسطة الافتراضي، ولكن هذه الأسماء يمكن تم تغييرهه إلى أي اسم أسلوب صالح.

يوضح المثال التالي كيفية إلى يتكرر خلال صفوف في جدول بيانات ويملأ كائن باستخدام البيانات:

لكامل تعليمات برمجية سبيل المثال، راجع الإرشادات التفصيلية: الاتصال إلى البيانات في الكائنات (Windows Forms).

Private Sub LoadCustomers()
    Dim customerData As NorthwindDataSet.CustomersDataTable =
        CustomersTableAdapter1.GetTop5Customers()

    Dim customerRow As NorthwindDataSet.CustomersRow

    For Each customerRow In customerData
        Dim currentCustomer As New Customer()
        With currentCustomer

            .CustomerID = customerRow.CustomerID
            .CompanyName = customerRow.CompanyName

            If Not customerRow.IsAddressNull Then
                .Address = customerRow.Address
            End If

            If Not customerRow.IsCityNull Then
                .City = customerRow.City
            End If

            If Not customerRow.IsContactNameNull Then
                .ContactName = customerRow.ContactName
            End If

            If Not customerRow.IsContactTitleNull Then
                .ContactTitle = customerRow.ContactTitle
            End If

            If Not customerRow.IsCountryNull Then
                .Country = customerRow.Country
            End If

            If Not customerRow.IsFaxNull Then
                .Fax = customerRow.Fax
            End If

            If Not customerRow.IsPhoneNull Then
                .Phone = customerRow.Phone
            End If

            If Not customerRow.IsPostalCodeNull Then
                .PostalCode = customerRow.PostalCode
            End If

            If Not customerRow.Is_RegionNull Then
                .Region = customerRow._Region
            End If

        End With

        LoadOrders(currentCustomer)
        CustomerBindingSource.Add(currentCustomer)
    Next
End Sub
private void LoadCustomers()
{
    NorthwindDataSet.CustomersDataTable customerData = 
        customersTableAdapter1.GetTop5Customers();

    foreach (NorthwindDataSet.CustomersRow customerRow in customerData)
    {
        Customer currentCustomer = new Customer();
        currentCustomer.CustomerID = customerRow.CustomerID;
        currentCustomer.CompanyName = customerRow.CompanyName;

        if (customerRow.IsAddressNull() == false)
        {
            currentCustomer.Address = customerRow.Address;
        }

        if (customerRow.IsCityNull() == false)
        {
            currentCustomer.City = customerRow.City;
        }

        if (customerRow.IsContactNameNull() == false)
        {
            currentCustomer.ContactName = customerRow.ContactName;
        }

        if (customerRow.IsContactTitleNull() == false)
        {
            currentCustomer.ContactTitle = customerRow.ContactTitle;
        }

        if (customerRow.IsCountryNull() == false)
        {
            currentCustomer.Country = customerRow.Country;
        }

        if (customerRow.IsFaxNull() == false)
        {
            currentCustomer.Fax = customerRow.Fax;
        }

        if (customerRow.IsPhoneNull() == false)
        {
            currentCustomer.Phone = customerRow.Phone;
        }

        if (customerRow.IsPostalCodeNull() == false)
        {
            currentCustomer.PostalCode = customerRow.PostalCode;
        }

        if (customerRow.IsRegionNull() == false)
        {
            currentCustomer.Region = customerRow.Region;
        }

        LoadOrders(currentCustomer);
        customerBindingSource.Add(currentCustomer);
    }
}

قم بإنشاء مجموعة المكتوب من الكائنات

يمكنك إنشاء مجموعة فئات الكائنات الخاصة بك أو استخدام مكتوب المجموعات التي يتم توفيرها تلقائياً بواسطة مكوّن BindingSource.

عندما تقوم بإنشاء مجموعة مخصصة فئة للكائنات، نقترح يورث BindingList<T>. هذا العام فئة يوفر وظائف لإدارة المجموعة الخاصة بك، بالإضافة إلى القدرة على رفع الأحداث التي تقوم بإرسال إعلامات إلى بنية تحتية لربط بيانات في Windows Forms.

المجموعة التي تم إنشاؤها بشكل تلقائي في BindingSourceيستخدم BindingList<T>به مجموعة مكتوب. إذا كان تطبيق الخاص بك لا تتطلب وظائف إضافى، ثم يمكنك الاحتفاظ بجهاز مجموعة داخل BindingSource. ل المزيد من المعلومات، راجع Listخاصية BindingSourceفئة.

ملاحظة

إذا كانت مجموعتك ستتطلب الوظائف غير المتوفرة من قبل التطبيق الأساسي ل BindingList<T>، ثم يجب إنشاء مجموعة مخصصة بحيث يمكنك إضافة إلى فئة حسب الحاجة.

يلي تعليمات برمجية يوضح كيفية إنشاء فئة لمجموعة كتبتها بشدة من Orderالكائنات:

''' <summary>
''' A collection of Orders
''' </summary>
Public Class Orders
    Inherits System.ComponentModel.BindingList(Of Order)

    ' Add any additional functionality required by your collection.

End Class
/// <summary>
/// A collection of Orders
/// </summary>
public class Orders: System.ComponentModel.BindingList<Order>
{
    // Add any additional functionality required by your collection.
}

إضافة الكائنات إلى مجموعة

إضافة الكائنات إلى مجموعة بواسطة استدعاء Addالأسلوب للمجموعة المخصصة الخاصة بك فئة أو من BindingSource.

على سبيل مثال إضافة إلى مجموعة استخدام BindingSource، انظر LoadCustomersأسلوب في الإرشادات التفصيلية: الاتصال إلى البيانات في الكائنات (Windows Forms).

للحصول على مثال لإضافة الكائنات إلى مجموعة مخصصة، راجع LoadOrdersأسلوب في الإرشادات التفصيلية: الاتصال إلى البيانات في الكائنات (Windows Forms).

ملاحظة

Addأسلوب هو المتوفر تلقائياً لمجموعة مخصصة عند التي يورث BindingList<T>.

يلي تعليمات برمجية يوضح كيفية إضافة الكائنات إلى مجموعة مكتوب في BindingSource:

Dim currentCustomer As New Customer()
CustomerBindingSource.Add(currentCustomer)
Customer currentCustomer = new Customer();
customerBindingSource.Add(currentCustomer);

يلي تعليمات برمجية يوضح كيفية إضافة الكائنات إلى مجموعة مكتوب التي ترث من BindingList<T>:

ملاحظة

في هذا المثال Ordersمجموعة خاصية Customerكائن.

Dim currentOrder As New Order()
currentCustomer.Orders.Add(currentOrder)
Order currentOrder = new Order();
currentCustomer.Orders.Add(currentOrder);

إزالة الكائنات من مجموعة

قمت بإزالة الكائنات من مجموعة بواسطة استدعاء في Removeأو RemoveAtأسلوب الخاص بك مخصص الفئة مجموعة أو BindingSource.

ملاحظة

Removeو RemoveAtتلقائياً ويتم توفير وظائف لجهاز مخصص مجموعة عند التي يورث BindingList<T>.

التعليمة البرمجية التالية يوضح كيفية إلى موقع وقم بإزالة كائنات من مجموعة مكتوب في BindingSourceمع RemoveAtأسلوب:

Dim customerIndex As Integer = CustomerBindingSource.Find("CustomerID", "ALFKI")
CustomerBindingSource.RemoveAt(customerIndex)
int customerIndex = customerBindingSource.Find("CustomerID", "ALFKI");
customerBindingSource.RemoveAt(customerIndex);

عرض كائن بيانات إلى مستخدمين

إلى عرض البيانات في الكائنات إلى للمستخدمين، يمكنك إنشاء مصدر بيانات كائن باستخدام معالج تكوين مصدر البيانات، ثم اسحب الكائن بأكمله أو الخصائص الفردية على إلى النموذج الخاص بك من نافذة Data المصادر .

ل المزيد المعلومات حول إنشاء مصدر بيانات كائن، راجع كيفية القيام بما يلي: يعيّن إلى البيانات في الكائنات.

لمزيد من المعلومات حول عرض بيانات من الكائنات على Windows Forms، راجع قم بربط عناصر التحكم إلى البيانات في ‏‫Visual Studio.

قم بتعديل بيانات في الكائنات

لتحرير بيانات في كائن s المخصصة التي يتم حدود بيانات إلى عناصر تحكم النماذج Windows، قم بتحرير بيانات في تحكم محدود (أو مباشرة في خصائص كائن's) فقط. هندسة ربط بيانات يقوم بتحديث بيانات في كائن.

إذا تطلب التطبيق الخاص بك إلى تعقب التغييرات وجاري التحريك الخلفي للتغييرات المقترحة إلى قيمها الأصلية، فيجب تطبيق هذه الوظيفة في جهاز كائن الطراز. للحصول على أمثلة حول كيفية جداول بيانات التمكن من مقطع صوتي التغييرات المقترحة، راجع DataRowState، HasChanges، و GetChanges.

حفظ البيانات في الكائنات السابق إلى قاعدة بيانات

حفظ بيانات إلى قاعدة بيانات بتمرير قيم من الكائن الخاص بك إلى وظائف DBDirect ل محول الجدول.

ينشئ ‏‫Visual Studio DBDirect وظائف التي يمكن تنفيذها مباشرة من قاعدة بيانات. لا تتطلب هذه الأساليب على الكائنات فئة البيانات أو جدول البيانات.

أسلوب محول الجدول DBDirect

الوصف

TableAdapter.Insert

قم بإضافة سجلات جديدة إلى databكـe، مما يسمح لك ب pكـs في قيم الأعمدة الفردية كـ معلمات الأسلوب.

TableAdapter.Update

تحديث السجلات في قاعدة بيانات موجود. يأخذ الأسلوب تحديث الأصلي و جديد قيم الأعمدة كمعلمات الأسلوب. تستخدم قيم الأصلية لتحديد موقع السجل الأصلي، ويتم استخدام قيم الجديدة بتحديث هذا السجل.

TableAdapter.Updateأسلوب هو يستخدم أيضا لتوفيق التغييرات في ورقة العمل العودة إلى قاعدة بيانات وذلك باتخاذ DataSet، DataTable، DataRow، أو صفيفة من DataRows كمعلمات الأسلوب.

TableAdapter.Delete

قم بحذف سجلات موجودة من bكـed databكـe على pكـsed قيم العمود الأصلي في كـ معلمات الأسلوب.

لحفظ البيانات من مجموعة من الكائنات، يتكرر خلال مجموعة الكائنات (على سبيل المثال، استخدام تكرار حلقي لأخرى) و إرسال قيم لكل كائن إلى قاعدة بيانات باستخدام وظائف DBDirect ل محول الجدول.

يوضح المثال التالي كيفية إلى استخدام TableAdapter.Insertأسلوب DBDirect إلى إضافة cusإلىmer جديدة مباشرة في إلى قاعدة بيانات:

Private Sub AddNewCustomer(ByVal currentCustomer As Customer)

    CustomersTableAdapter.Insert(
        currentCustomer.CustomerID,
        currentCustomer.CompanyName,
        currentCustomer.ContactName,
        currentCustomer.ContactTitle,
        currentCustomer.Address,
        currentCustomer.City,
        currentCustomer.Region,
        currentCustomer.PostalCode,
        currentCustomer.Country,
        currentCustomer.Phone,
        currentCustomer.Fax)
End Sub
private void AddNewCustomers(Customer currentCustomer)
{
    customersTableAdapter.Insert( 
        currentCustomer.CustomerID, 
        currentCustomer.CompanyName, 
        currentCustomer.ContactName, 
        currentCustomer.ContactTitle, 
        currentCustomer.Address, 
        currentCustomer.City, 
        currentCustomer.Region, 
        currentCustomer.PostalCode, 
        currentCustomer.Country, 
        currentCustomer.Phone, 
        currentCustomer.Fax);
}

راجع أيضًا:

المهام

كيفية القيام بما يلي: يعيّن إلى البيانات في الكائنات

الإرشادات التفصيلية: الاتصال إلى البيانات في الكائنات (Windows Forms)

كيفية القيام بما يلي: حفظ بيانات من أحد كائنات إلى قواعد بيانات

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

الإرشادات التفصيلية: حفظ بيانات مع وظائف محول الجدول DBDirect

المبادئ

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

موارد أخرى

TableAdapters

حفظ بيانات