كيفية التعامل مع نتائج متعددة باستخدام DataReader في Visual C#.NET

للحصول على إصدار Microsoft Visual Basic.NET من هذه المقالة، راجع
309490 .

تشير هذه المقالة إلى مكتبة فئات Microsoft.NET Framework مساحات الأسماء التالية:
  • System.Data.OleDb
  • System.Data.SqlClient

في هذه المهمة

ملخص

تتضمن هذه المقالة وظيفة عامة التي يمكنك استخدامها لمعالجة مجموعات سجلات متعددة والرسائل الأخرى التي يتم إرجاعها من تنفيذ المجموعة عبارات SQL أو الإجراءات المخزنة.

وصف للتقنية

كائنات بيانات ActiveX "(ADO) تلقي خمسة أنواع مختلفة من البيانات من الخادم:
  • مجموعة السجلات
  • عدد السجلات التي يتم تعديلها بواسطة استعلام إجرائي (مثل إدراج أو تحديث أو حذف أو SELECT INTO)
  • تحذير أو رسالة إخبارية
  • رسالة الخطأ
  • إرجاع القيم المخزنة ومعلمات الإخراج
عند قراءة نتائج الدفعة عبارة SQL، يمكنك استخدام أسلوب نيكستريسولت لوضع DataReader في النتائج التالية في مجموعة النتائج.

متطلبات

توضح القائمة التالية الأجهزة الموصى بها برامج البنية الأساسية للشبكة وحزم الخدمات التي تحتاجها:
  • متقدم Windows 2000 Server أو نظام التشغيل Microsoft Windows 2000 Professional، Windows 2000 Server أو نظام التشغيل Windows NT 4.0 Server
  • Microsoft Visual Studio.NET
  • Microsoft SQL Server 7.0 أو ما بعدة
تفترض هذه المقالة أنك معتاد على المواضيع التالية:
  • Visual Studio.NET
  • أساسيات ADO.NET وبناء الجملة

إنشاء مشروع وإضافة التعليمات البرمجية

يستخدم نموذج التعليمات البرمجية هذا الكتاب جدول نموذج قاعدة بيانات Pubs ملقم SQL.
  1. لصق البيانات التالية في أداة محلل استعلام SQL أو الأداة المساعدة ISQL:
    CREATE PROC MyProcAS
    SELECT * FROM Authors
    SELECT * FROM Authors WHERE State = 'CA'
    GO

  2. بتشغيل Visual Studio.NET.
  3. إنشاء مشروع تطبيق Windows جديد في Visual C#.NET. Form1 يضاف إلى المشروع بشكل افتراضي.
  4. تأكد من أن المشروع يحتوي على مرجع إلى مساحة الاسم System.Data وإضافة مرجع إلى مساحة الاسم هذه إذا لم يكن كذلك.
  5. ضع زر أمر على Form1. تغيير خاصية اسم الزر إلى btnTest، وتغيير الخاصية Text الاختبار.
  6. استخدام عبارة using على مساحات الأسماء System.Data.OleDbو نظام System.Data.SqlClient حيث غير مطلوبة إلى تأهيل التعريفات بمساحات لاحقاً في التعليمات البرمجية الخاصة بك. أضف التعليمات البرمجية التالية إلى المقطع "تعريفات عامة" من Form1:
    using System;using System.Data.OleDb;
    using System.Data.SqlClient;

  7. أضف التعليمات البرمجية التالية إلى حدث btnTest_Click :

    ملاحظة: يجب تغيير قيمة "معرف المستخدم" < اسم المستخدم > حساب إلى حساب لديه الأذونات المناسبة لتنفيذ هذه العمليات على قاعدة البيانات.
        String myConnString  = "User ID=<username>;password=<strong password>;Initial Catalog=pubs;Data Source=myServer";    SqlConnection myConnection = new SqlConnection(myConnString);
    SqlCommand myCommand = new SqlCommand();
    SqlDataReader myReader ;

    myCommand.CommandType = CommandType.StoredProcedure;
    myCommand.Connection = myConnection;
    myCommand.CommandText = "MyProc";
    int RecordCount=0;

    try
    {
    myConnection.Open();
    myReader = myCommand.ExecuteReader();

    while (myReader.Read())
    {
    //Write logic to process data for the first result.
    RecordCount = RecordCount + 1;
    }
    MessageBox.Show("Total number of Authors: " + RecordCount.ToString());

    myReader.NextResult();
    RecordCount = 0;

    while (myReader.Read())
    {
    //Write logic to process data for the second result.
    RecordCount = RecordCount + 1;
    }
    MessageBox.Show("Authors from California: " + RecordCount.ToString());
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.ToString());
    }
    finally
    {
    myConnection.Close();
    }

  8. قم بتعديل سلسلة الاتصال (myConnString) كما هو مناسب للبيئة الخاصة بك.
  9. حفظ المشروع الخاص بك. في القائمة " تصحيح "، انقر فوق ابدأ لتشغيل المشروع الخاص بك.
  10. انقر فوق اختبار. لاحظ أن عرض مربعات رسائل البيانات التي تقوم بإرجاع الإجراء المخزن.

المراجع

للحصول على معلومات إضافية حول استدعاء الإجراءات المخزنة، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
306574 كيفية استدعاء ملقم SQL الإجراءات المخزنة في ASP.NET
للحصول على معلومات إضافية حول معالجة الأخطاء، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
كيفية الحصول على أخطاء الموفر الأساسي باستخدام ADO.NET في Visual C#.NET 308650
للحصول على معلومات إضافية حول معلمات والإجراءات المخزنة، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
308621 PRB: لم يتم إرجاع معلمات الإخراج عند تشغيل أمر ADO.NET في Visual C#.NET
لمزيد من المعلومات حول كائنات ADO.NET وبناء الجملة، راجع وثائق Microsoft.NET Framework مجموعة تطوير البرامج (SDK) التالية:
الوصول إلى البيانات باستخدام ADO.NET
http://msdn2.microsoft.com/en-us/library/e80y5yhx(vs.71).aspx
خصائص

رقم الموضوع: 311274 - آخر مراجعة: 18‏/01‏/2017 - المراجعة: 1

تعليقات