4- التاكد من ان المستخدم ادخل كلمة المرور
5- التاكد من ان المستخدم قد اعاد عملية ادخال كلمة المرور
6- التاكد من ان كلمة المرور متطابقة في الحقلين
كود:
If PassB.Text = Nothing Then
ErrorLabel.Text = "ادخل كلمة المرور في المكان المخصص"
Exit Sub
End If
If RPassB.Text = Nothing Then
ErrorLabel.Text = "اعد ادخال كلمة المرور في المكان المخصص"
Exit Sub
End If
If PassB.Text <> RPassB.Text Then
ErrorLabel.Text = "كلمة المرور غير متطابقة في الحقلين"
Exit Sub
End If
7- التاكد من ان كلمة المرور المدخله لا تقل عن ستة احرف وهي اقل طول مسموح به
كود:
If PassB.Text.Length < 6 Then
ErrorLabel.Text = "كلمة المرور يجب ان تكون على الاقل ستة احرف او ارقام"
Exit Sub
End If
في الكود استخدمنا
PassB.Text.Length
وهذه تعني طول النص المدخل في الاداة التي تحمل الاسم
PassB
8- في حالة عدم ادخال المستخدم لاسمه الكامل نقوم بتعبئة قيمة افتراضية هي
N/A
داخل حقل اسم المستخدم
ونكرر الخطوة السابقة مع اسم الشركة وووو حتى نهاية بقية الحقول الاخرى
كود:
If FullNameB.Text = Nothing Then
FullNameB.Text = "N/A"
End If
If CompanyNameB.Text = Nothing Then
CompanyNameB.Text = "N/A"
End If
If AddressB.Text = Nothing Then
AddressB.Text = "N/A"
End If
If CityB.Text = Nothing Then
CityB.Text = "N/A"
End If
If WebSiteUrlB.Text = Nothing Then
WebSiteUrlB.Text = "N/A"
End If
If TelephoneB.Text = Nothing Then
TelephoneB.Text = "N/A"
End If
If FaxB.Text = Nothing Then
FaxB.Text = "N/A"
End If
في الكود اعلاه قمنا بفتحص الحقول الغير مطلوبة بشكل اجباري مثل الاسم الكامل او اسم الشركة وو فاذا كان المستخدم قد ترك احدها فارغ دون ان يكتب به شيء قمنا بشكل تلقائي بوضع القيمة
N/A
في داخله
نأتي الان الي اهم مرحلة في هذا الدرس وهي مرحلة الاتصال مع قاعدة البيانات وتعريف ادوات الاتصال مع القاعدة
9- الاتصال مع قاعدة البيانات وتعريف ادوات الاتصال
للاستفاده اكثر ارجع لهذا الموضوع
http://www.swalif.net/softs/showthread.php?t=160382
الاتصال مع قاعدة البيانات في ال
Ado.Net
يتكون من اربعة مراحل هي كالتالي
- مرحلة تعريف نص الاتصال ومتغير الاتصال
- اسناد نص الاتصال لمتغير الاتصال وهكذا يكون لدينا متغير للتحكم بقاعدة البيانات من فتح واغلاق .. الخ
- تعريف جملة السكويل
SQL Strring
وهي الجملة التي سوف نطبقها على قاعدة البيانات وتكون اما اضافة على القاعده او حذف او تعديل ...الخ
- تعريف اداة الكومند وهي الاداة التي سنطبق جملة السكويل على القاعدة بواسطتها
في هذه الصفحة فان ماسنحتاجه هو جملة اضافة لاننا سنقوم باضافة بيانات الي القاعدة لهذا فان الخطوات السابقة كافية لتلبية ما نريده ولكن في حالة اننا رغبنا بجلب بيانات فانه سيلزمنا خطوتين بعد وهما
- تعريف الادابتر الذي سنعود بالبيانات العائده جراء تنفيذ جملة السكويل من القاعدة من خلاله
- تعريف داتا ست نفرغ في داخلها البيانات
وسوف نذكر هاتين الخطوتين بالتفصيل في وقته ان شاء الله
الان في مثالنا هذا سوف نحتاج لتعريف متغير اتصال ونسند له نص الاتصال مع قاعدة البيانات ومن ثم تعريف جملة السكويل ومن ثم تنفيذ جملة السكويل (جملة الاضافة) على قاعدة البيانات
ولكننا لا نريد تنفيذ جملة الاضافة الان لان مازال لدينا خطوات اخرى وهي التحقق من البريد مثلا ومن ثم نقوم باضافتها لذلك سوف نكتفي الان بتعريف المتغيرات ومن ثم نقوم باضافة الجملة في الخطوة الاخيره ان شاء الله
تعريف المتغيرات يكون بالشكل التالي
كود:
'تعريف متغير الاتصال
Dim Con As SqlClient.SqlConnection = New SqlClient.SqlConnection
'تعريف نص الاتصال
Dim ConStr As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=RuDataBase;Data Source=XP9"
'اسناد نص الاتصال لمتغير الاتصال
Con.ConnectionString = ConStr
'تعريف متغير نسند له جملة ال SQL
Dim SQLStr As String = ""
'تعريف الكومند والذي بواسطته سنقوم بتنفيذ جملة السكويل على القاعدة في خطوة لاحقه
Dim Cmd As SqlClient.SqlCommand = New SqlClient.SqlCommand
لاحظ ان نوع متغيرات الاتصال والكومند كان من النوع
SqlClient
وهذا لاننا نتصل مع قاعدة بيانات من نوع
SQL
في حالة اننا كنا نتصل مع قاعدة بيانات من نوع اخر يجب ان نقوم بتغرف المتغيرات الخاصه بهذا النوع مثلا في حالة قاعدة بيانات اكسس فان نوع المتغير يكون
oledb
وهكذا
نص الاتصال والذي عبرنا عنه بالمتغير
ConStr
هذا كذلك يختلف على حسب نوع القاعدة التي نتصل معها وفي نص الاتصال اعلاه فان ال
XP9
هذه اسم الجهاز و ال
RuDataBase
هذه اسم قاعدة البيانات
في الموضوع الذي اشرت لعنوانه في الاعلا يوجد شرح اوسع عن نص الاتصال هذا وطريقة معرفته
10 - التأكد من ان البريد الالكتروني المدخل غير مستخدم من قبل عضو اخر
في هذه الخطة سوف نستخدم جملة
SQL
من نوع اختيار بيانات من القاعدة
Select
ننفذها على القاعده ومن ثم نعود بالبيانات المرسلة بواسطة الادابتر ومن ثم نفرغها في داتا ست
اولا نعرف الادابتر وهو الوسيط الذي سنعود بالبيانات عن طريقة
ومن ثم نعرف داتا ست وهي بمثابة جدول نقوم بافراغ كل الحقول والجداول العائده من قاعدة البيانات ومن جراء تنفيذ جملة السكويل في داخلها ومن ثم يكون كل تعاملنا مع الداتا ست هذا
كود:
'ننفذ جملة SQL
'في قاعدة البيانات
SQLStr = "Select UID From TUsers where Email Like '" + EmailB.Text + "'"
'نرسل الجملة بواسطة الكومند
Cmd.CommandText = SQLStr
Cmd.Connection = Con
'نفتح الاتصال مع القاعدة
Con.Open()
'اعادة النتائح في الادابتر
Adap.SelectCommand = Cmd
'افراغ النتائح في داخل الداتاست
Adap.Fill(DataSetSE)
'اغلاق الاتصال
Con.Close()
لاحظ اننا في جملة ال
SQL
ارسلنا له امر اختيار وترجمتها بالنص هي كتالي
قم بختيار رقم العضو حيث ان بريده الالكتروني يساوي البريد المدخل في الاداة التي تحمل الاسم
EmailB
فاذا عاد لنا من القاعدة نتائج وكان هناك نتائج عائده فان هذا يعني ان البريد موجود فعلا من قبل ومستخدم من قبل
اما اذا لم يعد لنا اية نتائج فان هذا يعني ان البريد الالكتروني غير مستخدم من قبل
او بمعنى اخر اذا كانت النتائج الموجوده في الداتا ست لا تساوي الصفر فان هذا يعني انه يوجد نتائج وبالتالي البريد موجود من قبل ومستخدم اذا نعرض له رسالة الخطأ ونقوم باخراجه من تنفيذ باقي الكود
كود:
If DataSetSE.Tables(0).Rows.Count <> 0 Then
ErrorLabel.Text = "البريد الالكتروني مستخدم من قبل عضو اخر"
Exit Sub
End If
الداتا ست تستوعب اي عدد من الجداول واي عدد من الحقول في مثالنا السابق قمنا باختيار حقل واحد من جدول واحد في قاعدة البيانات في جملة السكويل لهذا فان رقم الجدول الذي اخترناه هو صفر في الداتا ست لان الترقيم فيها يبدأ من الصفر ولو كنا اخترنا جدولين فان الجدول الثاني سيكون رقمه واحد وهكذا
في الجملة الشرطية اعلاه اخبرناه انه في حالة كان عدد الصفوف العائده في الجدول الاوصل والي هو رقمه صفر في الداتا ست اذا كان عددها لا يساوي الصفر فقم باخراجه من الدالة اخباره بان البريد مستخدم من قبل عضو اخر
لانه اذا كان عددها لا يساوي الصفر فان هذا يعني ان هناك نتائج عادت في الداتا ست وهذا يعني ان البريد موجود من قبل لانه وجد رقم العضو الذي يحمل البريد الالكتروني هذا
11- نقوم بتخزين معلومات العضو في قاعدة البيانات
هنا سنقوم بتنفيذ جملة سكويل على قاعدة البيانات تحتوي امر الاضافة اي اضافة حقول لقاعدة البيانات وهذه الحقول ستكون هي نفسها القيم الموجوده في الحقول على النموذج ويكون الكود بالشكل التالي
كود:
'اسناد جملة السكويل لللمتغير الخاص بالجملة
SQLStr = "insert into TUsers(GID,Email,Pass,FullName,CompanyName,Address,City,Country,WebSiteUrl,Telephone,Fax,ReDate) Values(2,'" + EmailB.Text + "','" + PassB.Text + "','" + FullNameB.Text + "','" + CompanyNameB.Text + "','" + AddressB.Text + "','" + CityB.Text + "','" + CountryList.SelectedItem.Text + "','" + WebSiteUrlB.Text + "','" + TelephoneB.Text + "','" + FaxB.Text + "','" + Date.Now + "')"
'تنفيذ الجملة بواسطة الكومند
Cmd.CommandText = SQLStr
Cmd.Connection = Con
'فتح القاعدة
Con.Open()
'تنفيذ الجملة على القاعدة
Cmd.ExecuteNonQuery()
'اغلاق القاعدة
Con.Close()
في الكود السابق قمنا بتنفيذ الجملة على القاعدة وزرع الحقول في داخل قاعدة البيانات
ركز في جملة السكويل التي استخدمناها وعد الي الدرس السابق والي جدول المستخدمين او الاعضاء لتتعرف عليها جيدا وعلى الحقول المضافة لها
في الجملة استثنينا الحقل
Note
من جدول الاعضاء يمكنك استبعاده من الجدول او حذفه من الجدول في قاعدة البيانات وذلك لعدم وجود اي حاجه له او اتركه كما هو ففي الوضع الطبيعي انت سمحت للحقل ان يكون فارغ في قاعدة البيانات فلن يوجد اي مشاكل اذا لم نرسل له قيمة معينه طالما انك ابقيت على اشارة الصح امام الخيار
Null
اثناء تصميم الجدول والحقول فان هذا يعني ان الحقل اختياراي اي غير ملزم بادخال قيمة فيه
كما اننا استثنينا الحقل
UID
وذلك لان هذا الحقل قد اخترنا ترقيم تلقائي وعدم تكرار اي انه سيتم ادخال القيمة الخاصه فيه او الرقم بشكل تلقائي واذا حاولنا ارسال قيمة معينة في داخله فسوف يعود لنا برسالة خطأ
الرقم 2 في الجملة هو رقم المجموعة الافتراضية التي يتم اضافة الاعضاء الجدد فيها
النصوص التي اضفناها قمنا بوضعها في داخل هذه الرموز
'"++"'
طوتيشن واحده ثم دبل كوتيشن ثم اشارة زائد ثم اشارة زائد ثم دبل كوتيشن ثم كوتيشن واحده
وهذا يعني اننا سوف نقوم بزرع نص سترينج داخل هذا الحقل وبين اشارت الزائد نضع المتغير
يـــــــــــ في الرد التالي ــتــــبع