أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

كيفية تعبئة كائن DataSet من قاعدة بيانات باستخدام .NET Visual C++ أو Visual C++ 2005

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

اضغط هنا لرابط المقالة باللغة الانجليزية818779
للحصول على إصدار Microsoft Visual Basic .NET من هذه المقالة، راجع 301216.
للحصول على إصدار Microsoft Visual C# .NET من هذه المقالة، راجع 314145.
تشير هذه المقالة إلى مساحة الاسم Microsoft .NET Framework فئة مكتبة التالية:

System.Data.SqlClient

في هذه المهمة

الموجز
توضح هذه المقالة خطوة بخطوة حول كيفية تعبئة DataSet الكائن مع نتائج استعلام قاعدة بيانات واحد أو أكثر ثم كيفية الوصول إلى البيانات بعد تحميل الاستعلام في الكائن DataSet. الكائنات DataSet هي الكائنات في الذاكرة التي يمكن الاحتفاظ الجداول وطرق العرض العلاقات التي تشكل جزء مفتاح من الوصول إلى البيانات في Microsoft .NET Framework.

back to the top
معلومات أخرى

متطلبات

توضح القائمة التالية الأجهزة الموصى بها برامج البنية الأساسية للشبكة و حزم الخدمات التي يجب أن يكون لديك:
  • متقدم Microsoft Windows 2000 Professional أو نظام التشغيل Microsoft Windows 2000 Server أو نظام التشغيل Microsoft Windows 2000 Server أو Microsoft Windows NT 4.0 Server
  • Microsoft SQL Server 7.0 أو Microsoft SQL Server 2000 أو Microsoft Engine بيانات مع قاعدة بيانات نموذج Pubs تثبيت
  • Microsoft Visual Studio .NET أو Microsoft Visual Studio 2005
تفترض هذه المقالة كنت معتاداً على المواضيع التالية:
  • مصطلحات قاعدة البيانات
  • Microsoft SQL Server
back to the top

تعبئة DataSet

باستخدام مجموعة من الكائنات في مساحة الاسم System.Data يمكنك الاتصال بملقم قاعدة بيانات أو تشغيل استعلام ومن ثم قمت النتائج التي تم وضعها في كائن DataSet. DataSet كائن تم قطع اتصالها. لذلك، بعد تحميل البيانات لم تعد مستخدمة اتصال قاعدة بيانات حتى تريد تحميل المزيد من البيانات أو تحديث الخادم بالتغييرات التي أجريت على نسخة المعلومات في الذاكرة.

لتحميل البيانات من قاعدة بيانات إلى DataSet اتبع الخطوات التالية:
  1. بدء تشغيل Visual Studio .NET أو Visual Studio 2005.
  2. إنشاء تطبيق تمت إدارته C++ جديد في Visual C++ .NET 2002 ، أو إنشاء تطبيق وحدة تحكم جديد في Visual C++ .NET 2003 أو إنشاء تطبيق وحدة التحكم CLR جديد في Visual C++ 2005. اسم المشروع MyApplication ثم انقر فوق موافق.
  3. قم بإضافة التعليمات البرمجية التالية إلى MyApplication.cpp الملف.

    يؤدي هذا إلى إضافة مرجع إلى مساحة الاسم System.Dll مساحة الاسم System.Xml ومساحة System.Data.
    #using <System.Dll>#using <System.Data.Dll>#using <System.Xml.Dll>
  4. استخدم عبارة USING حول من مساحة الاسم النظام مساحة الاسم System.Data مساحة الاسم System.Xml مساحة الاسم System.Collections مساحة الاسم System.Data.SqlClient بحيث لا يلزم تأهيل التعريفات من مساحات الأسماء هذه فيما بعد في التعليمات البرمجية الخاصة بك. يجب استخدام هذه العبارات قبل أي الأخرى التعريفات.
    using namespace System;using namespace System::Data;using namespace System::Xml;using namespace System::Collections;using namespace System::Data::SqlClient;
  5. نقل البيانات من قاعدة البيانات إلى DataSet.

    للقيام بذلك، يجب عليك تأسيس اتصال قاعدة بيانات. يتطلب هذا كائن System.Data.SqlClient.SqlCommand سلسلة اتصال. سلسلة الاتصال في التعليمات البرمجية يصل كمبيوتر الذي يقوم بتشغيل SQL Server الموجود على الكمبيوتر المحلي (الكمبيوتر حيث يتم تشغيل التعليمات البرمجية). يجب تعديل هذه السلسلة الاتصال وفق ما يناسب بيئتك. بعد إنشاء الكائن SqlConnection استدعاء أسلوب هذا الكائن إلى تأسيس ارتباط قاعدة البيانات الفعلية. objConn
    SqlConnection* objConn;String* sConnectionString;sConnectionString = "Password=myPassword;User ID=myUserID;Initial Catalog=pubs;Data Source=(local)";objConn = new SqlConnection(sConnectionString);objConn->Open();
  6. إنشاء كائن DataAdapter يمثل ارتباط بين قاعدة البيانات الكائن DataSet. يمكنك تحديد SQL Server أو نوع آخر من أمر استخدامه لاسترداد البيانات كجزء من الكائن مُنشئ DataAdapter. يستخدم نموذج التالي SQL بيان يقوم باسترداد السجلات من جدول "الكُتاب" في قاعدة بيانات Pubs.
    SqlDataAdapter* daAuthors = new SqlDataAdapter("Select * From Authors", objConn);
  7. تقوم بتعريف ثم قم بإنشاء مثيل من DataSet الكائن.

    عند القيام بذلك، يجب توفير اسم DataSet بالكامل قبل أن تتمكن من البدء تحميل أية بيانات. قد يحتوي الاسم عدة مميزة الجداول.
    DataSet* dsPubs = new DataSet("Pubs");
  8. تشغيل FillSchema متبوعاً تعبئة أثناء معالجة تحميل البيانات.

    توفر الفئة SqlDataAdapter طريقتين "و" أسلوب "تعبئة" و "أسلوب FillSchema الموجودة حاسمة تحميل هذه البيانات. هذه الطرق تحميل معلومات إلى DataSet. أسلوب التعبئة تحميل البيانات نفسها ثم أسلوب FillSchema بتحميل كافة بيانات تعريف متوفرة حول جدول محدد (مثل أسماء أعمدة المفاتيح الأساسية والقيود). daAuthors
    daAuthors->FillSchema(dsPubs,SchemaType::Source, "Authors");daAuthors->Fill(dsPubs,"Authors");

    إذا كنت تستخدم فقط تعبئة ، يمكنك فقط تحميل بيانات التعريف الأساسية التي يجب أن يكون لديك لوصف أسماء الأعمدة وأنواع البيانات. لا يقوم أسلوب التعبئة بتحميل معلومات المفتاح الأساسي. لتغيير هذا السلوك الافتراضي يمكنك تعيين الخاصية MissingSchemaAction للكائن DataAdapter إلى MissingSchemaAction.AddWithKey. هذا بتحميل بيانات تعريف المفتاح الأساسي بالإضافة إلى معلومات افتراضية. daAuthors
    daAuthors->MissingSchemaAction = MissingSchemaAction::AddWithKey;daAuthors->Fill(dsPubs,"Authors");
    البيانات متوفر الآن ككائن DataTable فردية في المجموعة جداول DataSet. إذا قمت بتحديد اسم جدول في المكالمات FillSchema ثم إلى تعبئة يمكنك استخدام هذا الاسم إلى الوصول إلى جدول معين التي تتطلب.
    DataTable* tblAuthors = dsPubs->Tables->Item["Authors"];
  9. استخدم الدالة GetEnumerator للوصول إلى كائنات DataRow في مجموعة الصفوف DataTable. استخدم أثناء حلقة تكرار كل صف من الجدول. يمكنك الوصول إلى أعمدة حسب الاسم أو حسب الفهرس الموضعية. صفر (0) هو موضع العمود الأول. iEnum
    IEnumerator* iEnum = tblAuthors->Rows->GetEnumerator();         while(iEnum->MoveNext()) {        Console::WriteLine("{0}   {1}",dynamic_cast<String*>(dynamic_cast<DataRow *>(iEnum->Current)->get_Item("au_fname")),                                       dynamic_cast<String*>(dynamic_cast<DataRow *>(iEnum->Current)->get_Item("au_lname"))); }
  10. حفظ المشروع الخاص بك. القائمة تصحيح ، انقر فوق "ابدأ" لتشغيل المشروع.

back to the top

إتمام سرد التعليمات البرمجية

// This is the main project file for the VC++ application project // that is generated by using the Application wizard.#include "stdafx.h"#using <mscorlib.dll>#include <tchar.h>#using <System.Dll>#using <System.Data.Dll>#using <System.Xml.Dll>using namespace System;using namespace System::Data;using namespace System::Xml;using namespace System::Collections;using namespace System::Data::SqlClient;// This is the entry point for this application.int _tmain(void){    SqlConnection* objConn;    try    {                String* sConnectionString;        sConnectionString = "Password=myPassword;User ID=myUserID;Initial Catalog=pubs;Data Source=(local)";        objConn = new SqlConnection(sConnectionString);        objConn->Open();                SqlDataAdapter* daAuthors = new SqlDataAdapter("Select * From Authors", objConn);        DataSet* dsPubs = new DataSet("Pubs");                daAuthors->FillSchema(dsPubs,SchemaType::Source, "Authors");        daAuthors->Fill(dsPubs,"Authors");        DataTable* tblAuthors = dsPubs->Tables->Item["Authors"];                IEnumerator* iEnum = tblAuthors->Rows->GetEnumerator();                while(iEnum->MoveNext())        {            Console::WriteLine("{0}   {1}",dynamic_cast<String*>(dynamic_cast<DataRow *>(iEnum->Current)->get_Item("au_fname")),                                           dynamic_cast<String*>(dynamic_cast<DataRow *>(iEnum->Current)->get_Item("au_lname")));                    }    }    catch(Exception *ex)    {        Console::WriteLine( ex->Message );    }    __finally    {        objConn->Close();    }        return 0;}
ملاحظة يجب إضافة الشائعة لغة وقت التشغيل دعم برنامج التحويل البرمجي الخيار (/ clr:oldSyntax) في Visual C++ 2005 ترجمة نموذج التعليمات البرمجية السابق بنجاح. لإضافة الشائعة لغة وقت التشغيل دعم برنامج التحويل البرمجي الخيار في Visual C++ 2005 اتبع الخطوات التالية:
  1. انقر فوق Project ثم انقر فوق <ProjectName> خصائص.

    ملاحظة<ProjectName> عنصرًا نائبًا اسم المشروع.
  2. قم بتوسيع خصائص تكوين ثم انقر فوق عام.
  3. انقر لتحديد وقت تشغيل اللغة العامة دعم ، البناء القديمة (/ clr:oldSyntax) في الإعداد المشروع يعتمد "وقت تشغيل اللغة العامة" في الجزء الأيسر انقر فوق تطبيق ثم انقر فوق موافق.
للحصول على مزيد من المعلومات حول وقت تشغيل اللغة العامة تعتمد الخيار برنامج التحويل البرمجي قم بزيارة موقع Microsoft التالي على الويب:
/ مسح (الترجمة وقت تشغيل اللغة العامة)
http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
back to the top
مراجع
لمزيد من المعلومات، قم بزيارة مواقع Microsoft التالية على الويب:

http://msdn2.microsoft.com/en-us/library/ms810293.aspx

http://msdn2.microsoft.com/en-us/library/ms973217.aspx

http://msdn.microsoft.com/net

back to the top

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 818779 - آخر مراجعة: 05/16/2007 03:29:22 - المراجعة: 3.2

Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition, Microsoft ADO.NET 1.1, Microsoft ADO.NET 1.0

  • kbmt kbsystemdata kbsqlclient kbhowtomaster kbhowto KB818779 KbMtar
تعليقات
>