ربط SQL بتطبيقك من خلال (Disconnected State) - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
الثلاثاء
2016-12-06
1:10 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

ربط SQL بتطبيقك من خلال (Disconnected State)
ربط SQL بتطبيقك من خلال (Disconnected State)

مقدمة
استكمالاً للمقالات السابقة , سنقوم اليوم بتكملة دروس ربط قاعدة بيانات SQL بتطبيق سي شارب , وسنشرح في مقالتنا كيفية جلب البيانات من خلال حالة Disconnected , والتي يستخدم فيها Adapter في جلب البيانات .

وقد قمنا في مقالتين سابقتين بشرح مبادئ اساسيه في عملية الربط , بداية من كيفية عمل الامر داخل السي شارب , مروراً بكبسلة الأمر داخل Stored Procedue , ثم كيفية اضافة متغيرات اليه وتمريرها من خلال البرنامج , وللإطلاع على المقالتين

http://topcoder.ucoz.com/publ/sql/2-1-0-42

http://topcoder.ucoz.com/publ/sql_2/2-1-0-43
Disconnected State
تختلف Disconnected State عن Connected State عدة اختلافات , ففي حالة الاتصال connected كنا نقوم فتح الاتصال وجلب البيانات ثم اغلاق الاتصال , وكل هذا كان يتم - ان صح التعبير - يدوياً , اي نقوم نحن بعمل هذا داخل الكود , حيث يكون الكود بهذا الهيكل
con.Open();
// Get data
con.Close();

اما في حالة عدم الاتصال (Disconnected ) فالخطوات الثلاثة السابقه - فتح وجلب واغلاق - تتم جميعها في خطوه واحده , فبدلاً من القيام - يدوياً - بفتح واغلاق الاتصال , فمبجرد طلبك اي بيانات من خلال موصل adapter , سيقوم هو بكل الخطوات بشكل تلقائي , هذا الموصل هو كلاس SqlDataAdapter , حيث يقوم بجلب البيانات على هيئة جدول DataTable يحتوي نتيجة تنفيذ الأمر .
جلب البيانات بواسطه adapter


وكما في المقالات السابقه سنقوم بشرح الأمثله على هذا الجدول , فعندما نقوم يعمل امر اختيار بيانات المنتج الأول مثلا , اي تنفيذ كود السيكوال التالي
select * from products
where product_id=1

فسنقوم بتمرير الامر الى adapter يقوم هو بتنفيذ الأمر وجلب البيانات ووضعها في جدول , وسيكون الجدول على الشكل التالي


وبما انه تم شرح جزئية Stored Procedure في مقاله سابقه , وكما هو معروف انه من الافضل وضع الاوامر داخل Proc , فسنقوم بشرح الأمثله مياشرة باستخدامها , وسنبدأ بتنفيذ ال proc التالي داخل السيكوال
Create SelectProduct1 proc
 
ثم سنقوم بتنفيذ هذا ال proc داخل التطبيق من خلال الكود التالي  
Execute Proc
 
في الكود نرى ان الخطوات الاولى كما هي لم تختلف عن سابقتها من حيث عمل اتصال و امر سيكوال , وتحديد خصائص الاتصال , ولكن الأختلاف يبدأ بداية من تعريف adapter جديد , ففي السابق كانت تحل مكان هذه الخطوه خطوة فتح الاتصال و جلب البيانات في reader واغلاق الاتصال , وهو ما سيقوم به ال adapter , حيث بعد تعريف adapter من نوع SqlDataAdapter , نقوم بتحديد الأمر الذي سينفذه داخل السيكوال , وهو الامر الذي تم ادراجه , فالموصل سيقوم بتنفيذ اوامر داخل proc في قاعدة البيانات , ثم نقوم بعمل جدول DataTable لإستقبال البيانات فيه , ثم الخطوة الأهم , وهي جلب البيانات , فكل ما علينا هو استخدام الداله Fill الخاصه بال adapter , وتمرير الجدول الذي ستضع فيه النتائج , ليقوم الموصل بكل الخطوات في الخلفيه , فهو يقوم بفتح اتصال مع قاعدة البيانات , ثم يقوم بتنفيذ الأمر وجلب نتيجته ووضعها داخل الجدول ثم غلق الاتصال مره اخرى , وكل هذا في خطوة واحده , وبعدها فانت لديك جدول به البيانات المطلوبه استخدمه كما شئت , فيمكنك اظهاره في dataGridView مثلا من خلال
dataGridView1.DataSource = table

او يمكنك استخلاص البيانات من الحقول داخل الجدول كالتالي
table.Rows[indexe of row]["Column Name"]
ويمكن تطبيق ذلك على المثال السابق من خلال الكود التالي  
Extract data from table
 
حيث نقوم بتحديد الحقل المطلوب من خلال صف وعمود الحقل , فيحدد الصف من خلال ترتيبه في الجدول , ويحدد العمود من خلال اسمه او ترتيبه , ونقوم بتحويل القيمة Casting الخاصه بالحقل , الى نوع البيانات المناسب - حيث تكون القيمة من نوع object فلابد من تحويلها

وعلى هذا الاساس يمكنك استخدام حالة عدم الاتصال في جلب البيانات , وبنفس الطريقه يتم التطبيق على كافة الاوامر وال procedures  , فمع ال proc ذو المتغيرات لا يختلف الأمر , فكل الذي يختلف هو المعاملات التي نضعها في امر السيكوال في الكود فقط , ولكن طريقة الجلب من خلال adapter لا تختلف نهائياً
ختـــام
وتتعدد الطرق التي يمكنك ربط برنامجك او موقعك مع قاعدة البيانات , فكما شرحنا في هذه المقاله , وكما شرحنا في المقالات السابقه , هناك مرونه في اختيار الطريقه التي ستستخدمها حسب حاجتك وحسب تفضيلك , وقد تم شرح المقالات يناءا على ما قبلها , فلو واجهتك بعض النقاط الغامضه في المقاله , فيمكنك قراءة المقالات السابقه , ثم اعادة قراءة المقاله مره اخرى

المقاله الأولى
http://topcoder.ucoz.com/publ/sql/2-1-0-42

المقاله الثانيه
http://topcoder.ucoz.com/publ/sql_2/2-1-0-43

مقالة تشرح تخزين الصور في قاعدة البيانات
http://topcoder.ucoz.com/publ/2-1-0-28
تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-09-23 4:13 PM)
مشاهده: 2906 | وسمات: sql, sql adapter, State, c sharp, adapter, disconnected, C# | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 0
إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz