14-10-12, 09:08 PM
(آخر تعديل لهذه المشاركة : 14-10-12, 09:19 PM {2} بواسطة محمود رغمان.)
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .السلام عليكم ورحمة الله وبركاته .
في هذا الدرس سنحاول التعرف على ماهية الوضع المتصل 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.SqlClient2- التعامل مع 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]كود :
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 مثل موقع : 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]كود :
[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]C#:
كود :
[SIZE=3]SqlDataReader myDataReader;[/SIZE]
[SIZE=3]myDataReader = myCommand.ExecuteReader();[/SIZE]كود :
[SIZE=3]Dim myDataReader As SqlDataReader [/SIZE]
[SIZE=3]myDataReader = myCommand.ExecuteReader() [/SIZE]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]كود :
[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]كود :
myDataReader.Close()كود :
[SIZE=3] cn.Close()[/SIZE]
الخيار الأول هو فقط ما يهمنا ، في هذه الحالة سيكون شكل الكود بالشكل التالي :
C#:
كود :
[SIZE=3]myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);[/SIZE]كود :
[SIZE=3]myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)[/SIZE]C#:
كود :
[SIZE=3] myDataReader.Close()[/SIZE]vb.net:
myDataReader.Close()
- طبعاً لا تنس أن بامكانك عمل نفس جملة الاستعلام Update او Delete أو Insert بدلاً من Select ، وحسب جملة الاستعلام المطلوبة .
