.
- صور سيارات
- صور تلوين
- صور عالية الجودة
- صور
- رياض اطفال
- صور اخترناها لك
- تلوين حيوانات
- عروض اسعار
- صور موبيلات
- صور كرتون صور انمى
- صور مميزة
- صور طبيعة
- صور غريبة
- صور حيوانات وطيور
- صور منوعة
- صور اسلامية
- صور للماسنجر
- صور اجهزة
- مقالات
- صور خلفيات
- صور شخصيات شهيرة
- الحروف
- صور مضحكة
- صور متحركة
- تلوين طيور
- صور اطفال
- صور علمية
- صور لاب توب
- فيديو
- صور حب
- تعليم الرسم
- صور ثلاثية أبعاد
- صور نجوم كرة القدم الاوروبية
- صور نجوم كرة القدم العربية
- تلوين اعلام الدول
- صور رياضة
- الفصول
- صور الديكور
- صور الفضاء الخارجى
- صور تصميمات
- صور تلوين كرتون
- صور ملابس
- العاب
- صور غرف نوم اطفال
- صور فنانين
- صور مرسومة
- صور ملابس اطفال
- صور موتوسيكلات
- قصص اطفال
- العاب تلوين
- اناشيد
- تلوين حشرات
- صور كاريكاتير
- صور كمبيوتر وانترنت
- افلام انمي وكارتون
- العاب الأطفال
- خلفيات موبيل
- صور أدوات
- صور انسان
- صور كاميرات
- صور معالم سياحية
- صور نباتات
- اناشيد للاطفال
- تلوين فواكه
- تلوين نباتات
- شروحات بالصور
- صور العاب
- صور حروب وأسلحة
- صور علوم وتكنولوجيا
التعامل مع قواعد البيانات
- خطوات التعامل مع قواعد البيانات:
- استيراد مجال الاسماء الخاص بالتعامل مع قواعد البيانات.
- كتابة نص الاتصال مع قاعدة البيانات.
- انشاء كائن للإتصال مع قاعدة البيانات.
- فتح الاتصال مع قاعدة البيانات.
- انشاء كائن لطلب استعلام من قاعدة البيانات.
- انشاء كائن لقراءة نتائج الاستعلام.
- التعامل مع النتائج (طباعتها , تنفيذ عمليات عليها ........)
- إغلاق الإتصال مع قاعدة البيانات.
أولاً: استيراد مجال الاسماء الخاص بالتعامل مع قواعد البيانات:
using System.Data;
using System.Data.SqlClient;
ثانياً: كتابة نص الاتصال مع القاعدة:
string conStr=@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Users.mdf" + ";Integrated Security=True;Connect Timeout=30;User Instance=True";
لفهم فكرة نص الاتصال لنأخذ المثال التالي:
تريد ان تتصل بصديق, عندها ستقوم برفع السماعة وكتابة رقم صديقك
وربما اذا كان من محافظة اخرى او دولة اخرى ستكتب رمز النداء لتلك المحافظة او الدولة
وهنا نفس الشيء للإتصال مع قاعدة البيانات يجب ان تكتب نص (رقم) للإتصال مع القاعدة .. وأيضاً هذا النص يختلف حسب نوع قاعدة البيانات (Access-SqlServer-Oracle…)
وهذا النص لا داعي لحفظه او حتى لفهمه كله لانه بامكانك نسخه ولصقه مباشرة ولكن اهم قسم في النص والذي يجب ان تفهمه هو القسم الاول DataSource:
Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath
القسم ".\SQLEXPRESS" يحدد نوع واصدار قاعدة البيانات وكما هو واضح انها قاعدة SqlServer نسخة Express
القسم الثاني "AttachDbFilename" والذي يحدد مسار ملف قاعدة البيانات على الكمبيوتر .. وهنا قمنا باستدعاء الخاصية StartupPath وهذه الخاصية موجودة ضمن الفيجوال ستوديو يعني جاهزة والتي تعطينا مسار برنامجنا يعني من أي مسار يعمل برنامجنا فإذا كان
مثلاً: في مجلد Windows على القرص C ستعيد لنا الخاصية: C:\Windows
وثم كتبنا اسم قاعدة البيانات فيصبح المسار مثلاً: C:\Windows\Users.mdf
ثالثاً: انشاء كائن الاتصال مع القاعدة:
SqlConnection con = new SqlConnection(conStr);
انشئنا كائن اسمه con للاتصال مع القاعدة عن طريق نص الاتصال (رقم التلفون) ...
رابعاً: فتح الاتصال:
con.Open();
قمنا باستدعاء الاجراء Open والذي يفتح الاتصال (لأنه لايمكنك التعامل مع القاعدة إلا عن طريق اتصال مفتوح)
خامساً: انشاء كائن لطلب استعلام من القاعدة:
SqlCommand cmd = new SqlCommand("Select * From tbUsers",con);
انشئنا كائن اسمه cmd يقوم بطلب استعلام من القاعدة والاستعلام هو عن الجدول tbUsers باستخدام كائن الاتصال con
وطبعاً الاستعلام يمكن ان يكون Select,Update,Insert او اي استعلام آخر.
سادساً: انشاء كائن لقراء نتائج الاستعلام:
SqlDataReader dr = cmd.ExecuteReader();
انشئنا كائن اسمه dr وهو من النوع DataReader من اسمه واضح (قارىء البيانات)
ولكن من أين سيأتي بالبيانات ؟؟ طبعاً يجب ان نسنده (نربطه) مع الكائن السابق cmd والذي يحوي طلب الاستعلام
وقمنا بربط الكائن dr مع الكائن cmd عن طريق التابع ExecuteReader() والذي يقوم بتنفيذ الاستعلام
وهو عبارة عن Function تابع يعيد كائن من نوع DataReader اي ان نتيجته هي كائن يحوي نتائج الاستعلام
سابعاً: التعامل مع نتائج الاستعلام:
while (dr.Read())
{
textBox1.Text = textBox1.Text + dr["userName"].ToString() + "\n";
}
قمنا بعمل حلقة While للدوران على جميع نتائج الاستعلام حيث سنتعامل مع النتائج على انها مصفوفة
التابع Read() يقوم بقراءة النتائج واحد تلو الآخر (أي في كل دورة سيقرأ سجل جديد) وطالما توجد نتائج أخرى سيعيد قيمة True وعندما ينتهي من قراءة جميع النتائج يعيد False فتتوقف الحلقة
قمنا بطباعة النتائج ضمن TextBox .. حيث سيطبع البرنامج قيم الحقل userName
لاحظ قمنا بالحصول على البيانات من الكائن dr على شكل مصفوفة: dr["userName"].ToString()
وهنا دليل العنصر ضمن المصفوفة هو نص اسم العمود وبامكاننا استخدام رقم العمود ولكن الطريق الاولى أفضل (لأن حفظ اسم العمود اسهل من حفظ رقم العمود مع الانتباه إلى ان الترقيم يبدأ من الصفر)
ثامناً: إغلاق الاتصال مع القاعدة:
con.Close();
اغلاق الاتصال عن طريق الامر Close() .. وهذا العملية ضرورية اي يجب اغلاق الاتصال بعد الانتهاء من التعامل مع القاعدة كي لاتنتج أخطاء مستقبلية.
مواضيع أخرى قد تهمك :
يمكنك التعليق باستخدام الفيس بوك
0 تعليقات
اترك تعليق
المتابعون
خدمات اخري
المواضيع الاكثر مشاهدة
ما هو رأيك فى الموقع
روابط
الارشيف
- ديسمبر (1)
- يوليو (15)
- يونيو (516)
- مايو (64)
- أبريل (29)
- مارس (25)
- فبراير (52)
- يناير (56)
- ديسمبر (66)
- نوفمبر (54)
- أكتوبر (55)
- سبتمبر (70)
- يوليو (1)
- يونيو (1)
- مايو (10)
- أبريل (1)
- مارس (3)
- فبراير (8)
- يناير (25)
- ديسمبر (102)
- نوفمبر (186)
- أكتوبر (242)
- سبتمبر (308)
- أغسطس (257)
- يوليو (370)
- يونيو (282)
- مايو (416)
- أبريل (556)
- مارس (1848)
- فبراير (1734)
- يناير (1128)
- ديسمبر (796)
- نوفمبر (741)
- أكتوبر (660)
- سبتمبر (520)
- أغسطس (490)
- يوليو (665)
- يونيو (742)
- مايو (366)
- أبريل (340)
- مارس (325)
- فبراير (184)
- يناير (320)
- ديسمبر (182)
- نوفمبر (130)
- أكتوبر (77)
- سبتمبر (74)
- أغسطس (101)
- يوليو (81)
- يونيو (181)
- مايو (329)
- أبريل (241)
- مارس (49)
- فبراير (25)
- يناير (31)
- نوفمبر (1)
- يونيو (2)
- مايو (5)
- أبريل (7)
- مارس (7)
- فبراير (12)
- يناير (15)
- ديسمبر (13)
- يناير (1)