تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثالث والستون - عالم ADO.net وما يتعلق به - الجزء الثالث
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

في هذا الدرس سنحاول التعرف على ماهية الوضع المتصل Connected Layer في ADO.net .
يسمح لك الوضع المتصل Connected Layer والذي يعتمد على وجود اتصال مفعل بقاعدة بياناتك اثناء عمليات التعديل بالتعامل مع قاعدة بياناتك من خلال connection للاتصال و command لتنفيذ الاستعلامات اضافة إلى data reader الخاصة بال DataProvider الذي تنوي التعامل معه وفي حالتنا هذه هو ال SQL .

سنقوم الآن بعمل تطبيق بسيط لعرض كافة اسماء الموظفين في قائمة ، لذا قم بالمتابعة معنا خطوة بخطوة :

1- جلب المكتبات التي سوف نتعامل معها وهي في حالتنا هذه System.Data.SqlClient :
C#:

كود :
using System.Data.SqlClient;

vb.net:

كود :
Imports System.Data.SqlClient


2- التعامل مع Connection من اجل الوصول إلى قاعدة البيانات الخاصة بنا وفتحها :
C#:

كود :
SqlConnection cn = new SqlConnection();

كود :
[SIZE=3] cn.ConnectionString = @"Data Source=AHMED-PC\SQLEXPRESS;Initial Catalog=Employee;Integrated Security=True;Pooling=False";[/SIZE]
[SIZE=3]cn.Open();[/SIZE]
vb.net:

كود :
Dim cn As New SqlConnection()

كود :
[SIZE=3]cn.ConnectionString = "Data Source=AHMED-PC\SQLEXPRESS;Initial Catalog=Employee;Integrated Security=True;Pooling=False" [/SIZE]
[SIZE=3]cn.Open() [/SIZE]
*** كيف تعرف ال ConnectionString .
أ- هناك العديد من المواقع التي تقدم لك خدمة معرفة ال ConnectionString مثل موقع : www.connectionstrings.com .
ب- لو كنت تعمل من خلال قاعدة بيانات داخل بيئة عمل .net يمكنك معرفة ال ConnectioString لها باختيارها من قائمة Server Explorer ومن ثم مشاهدة ال Properties بالشكل التالي :


ج- باستخدام اي من أدوات .net الجاهزة والتي سنتعرف على بعض منها في مراحل قادمة .

3- كتابة جملة استعلام بسيطة لطلب كل أسماء الموظفين الأولى + الثانية على شكل fullname بالاضافة إلى العمر - لو لم تفهم هذه الجملة راجع دروس TSQL - :
C#:

كود :
[SIZE=3]string strSQL = "Select [First Name]+[Last Name] as [Full Name], Age From Employee_info";[/SIZE]
[SIZE=3]SqlCommand myCommand = new SqlCommand(strSQL, cn);[/SIZE]
vb.net:

كود :
[SIZE=3]Dim strSQL As String = "Select [First Name]+[Last Name] as [Full Name], Age From Employee_info"
Dim myCommand As New SqlCommand(strSQL, cn) [/SIZE]
4- تعريف DataReader لقراءة البيانات وتنفيذها على شكل ExecuteReader :

C#:

كود :
[SIZE=3]SqlDataReader myDataReader;[/SIZE]
[SIZE=3]myDataReader = myCommand.ExecuteReader();[/SIZE]
vb.net:

كود :
[SIZE=3]Dim myDataReader As SqlDataReader [/SIZE]
[SIZE=3]myDataReader = myCommand.ExecuteReader() [/SIZE]
5- الدوران على كافة الحقول ووضعها في ListBox1 :
C#:

كود :
[SIZE=3]string listItem = "";[/SIZE]
[SIZE=3]while (myDataReader.Read())[/SIZE]
[SIZE=3]{[/SIZE]
[SIZE=3]listItem= "Full Name: " + myDataReader["Full Name"].ToString() + " Age: " + myDataReader["Age"].ToString();[/SIZE]
[SIZE=3]listBox1.Items.Add(listItem);[/SIZE]
[SIZE=3]}[/SIZE]
vb.net:

كود :
[SIZE=3]Dim listItem As String = "" [/SIZE]
[SIZE=3]While myDataReader.Read() [/SIZE]
[SIZE=3]listItem = "Full Name: " + myDataReader("Full Name").ToString() + " Age: " + myDataReader("Age").ToString() [/SIZE]
[SIZE=3]listBox1.Items.Add(listItem) [/SIZE]
[SIZE=3]End While [/SIZE]
سيكون ناتج تنفيذ هذا الكود شيئاً مثل هذا :


6- اغلاق وسائل الاتصال وعدم تركها مفتوحة :
C#:

كود :
myDataReader.Close();

كود :
[SIZE=3] cn.Close();[/SIZE]
vb.net:

كود :
myDataReader.Close()

كود :
[SIZE=3] cn.Close()[/SIZE]
*** هناك حل آخر لفتح قاعدة البيانات واغلاقها مباشرة بعد انتهاء تنفيذ المهمة ، اثناء عملك ExecuteReader يمكنك تحديد CommandBehavior يحدث بعد اغلاقها ، يحتوي هذا ال Enum على الخيارات التالية :


الخيار الأول هو فقط ما يهمنا ، في هذه الحالة سيكون شكل الكود بالشكل التالي :
C#:


كود :
[SIZE=3]myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);[/SIZE]
vb.net:

كود :
[SIZE=3]myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)[/SIZE]
هنا لن نقلق مجدداً بشأن اغلاق ال Coonection حيث سيتم اغلاقه تلقائياً بعد كتابة هذا السطر :
C#:

كود :
[SIZE=3] myDataReader.Close()[/SIZE]


vb.net:


myDataReader.Close()
- طبعاً لا تنس أن بامكانك عمل نفس جملة الاستعلام Update او Delete أو Insert بدلاً من Select ، وحسب جملة الاستعلام المطلوبة .
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس الثالث والستون - عالم ADO.net وما يتعلق به - الجزء الثالث - بواسطة Raggi Tech - 14-10-12, 09:08 PM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم