الإجراءات المخزنة الفرعية ستورد بروسيجر و كيف ربطها مع مثال برمجة بالكود, تستخدم لحفظ او حذف او استدعاء البيانات من الصفحة وقاعدة البيانات من خلال البروسيجرز Stored Procedures
يعتبر البروسيجرز من الطرق التي نستخدمها في اجراء عملية معينة مثل الحفظ او الحذف او الاستدعاء في برمجة المواقع
Stored Procedures with ASP.NET and Sql server
اولا نظرة عامة
اخذنا الطرق المختلفة في حفظ او حذف او استدعاء اي شئ وهي عمليات اساسية جدا لا غني عنها في برمجة مواقع الويب .وهذه الطرق اخذناها بكافة الطرق بالطبع يفضل مراجعة المحاضرات الخاصة بالدورة حيث اخذنا هذه العمليات بالطرق الاتية
- طريقة الكود Code
- طريقة الويزارد Wizard
- طريقة الاوبجتكت اورينتيد OOP -Object Oriented Programming
- الستورد بروسيجرز Stored Procedures
الستورد بروسيجرز يعتبر اجراء فرعي مخزن . تستخدم بها المتغيرات او الباراميترز في عمليات الحفظ والحذف والاستدعاء وغيرها . وهو يرسل جمل استعلام وغيرها الي السيرفر وقاعدة البيانات .
اين يتم انشاء هذا الاجرء الفرعي . يكون بداخل قاعدة البيانات من خلال المسار الاتي في اي قاعدة بيانات تنشئها
Database name --> Programability --> Stored procedures
وبالطبع تكون فارغة لا تحتوي علي اي بروسيجرز مخزن ..حيث ستنشئها انت الان .
لا تنسي اننا سوف نستخدم الان ما يسمي بالمعلمات او البارمترز parameters
حيث يوضع قبله علامة @
كيفية الاستخدام العملي له
1- كود سوف تنشئه بداخل السيكوال سيرفر نفسه سوف يكون لك جدول فرعي بروسيجرز
2- كود بسيط .وهو كلمة فقط تضاف بداخل كود الفيجوال ستوديو بالطبع اضافة لكود الحفظ العادي
العمل الفعلي الان
يمكنك تحميل المثال البرمجي من هنا
سنبدأ بعمل قاعدة بيانات ونسميها دخول login
وعمل جدول مكون من اسم وكلمة مرور كالصورة الاتية وبه الحقول الاتية
user_id رقم المستخدم ويكون حقل اساسي ويزيد تلقائيا وبالطبع لن يحفظ في الكود
user_name اسم المستخدم
user_pass كلمة المرو ونوعها نص
الان افتح المسار الاتي بداخل قاعدة البيانات دخول
Database Login --> Programability --> Stored procedures
ثم قف بالماوس كليك يمين علي ستورد بروسيجرز واضغط انشاء اجراء فرعي جديد
الان سوف يفتح لك تلقائيا كود في الشاشة بشكل تلقائي ..وهو كود مثال للبروسيجرز ..ينشئه لك السيكوال سيرفر كمساعدة منه لك ..في كيفية الانشاء ..احذفه بالكامل وقل شكرا لك ايها السيكوال علي المساعدة ولكني لن احتاجها ..فسوف انشئه بنفسي الان .
الان سوف نتعلم كيفية كتابة البروسيجرز
تذكر الاتي اولا
امر انشاء بروسيجرز او اجراء فرعي جديدCreate Proc
تجدر الاشارة اننا يمكن ان نقول ايضا create procedure
علامة الات التي تسبق الاميل توضع قبل اي متغير @
الان هذه و كود انشاء البروسيجرز كامل
ثم اضغط امر تنفيذ او execute
او اضغط من لوحة المفاتيح f5
وسوف يخبرك بالاسفل انه تم بنجاح كما تلاحظ بالصورة
وهذه صورة له
الان اكتمل اول جزء بنجاح وهو انشاء الاجراء الفرعي داخل السيكوال سيرفر
يتبقي الان الخطوة الثانية وهي طريقة استخدام هذا الاجراء الفرعي ..مع العلم انه بسيط جدا
ا فتح الفيجوال ستوديو واختر انشاء مشروع جديد كالاتي
الان افتح ملف الويب كونفيج وضع به نص الاتصال بقاعدة البيانات ..وهنا سوف نضع طريقة الاتصال بقاعدة البيانات sqserver
وكل ذلك عادي تدربنا عليه كثيرا
الان افتح الصفحة العادية للموقع واعمل نسخة من الاتصال بقاعدة البيانات وضعها في قيمة نصية حتي تستطيع ان تسترجعها فيما بعد
// هنا عرفت متغير عام علي مستوي الصفحة ووضعت فيه الاتصال بقاعدة البيانات
string cs = ConfigurationManager.ConnectionStrings["db_ConnectionString"].ConnectionString.ToString();
الان كود الحفظ للزر عند الضغط علي امر حفظ البيانات
ولاحظ اننا فقط كتبنا نوع الحفظ عن طريق ال stored proceduer
ايضا اسم البروسيجرز وضعناه لكي يتم الحفظ
void save()
{
// هنا فتحت الاتصال مع قاعدة البيانات
SqlConnection cn = new SqlConnection(cs);
cn.Open();
SqlCommand cmd = new SqlCommand();
// هنا اخبره ان الاتصال سوف يتم بالداتاباز
cmd.Connection = cn;
// هنا اهم اختيار وهو نوعه سوف يكون ستورد بروسيجرز مخزن بادخل قاعدة البيانات
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "insert_user";
// هذه هي البارمترز او المتغيرات التي يأخذ منها جملة الاستعلام اسم المستخدم وكلمة المرور
cmd.Parameters.AddWithValue("@name", txtName.Text);
cmd.Parameters.AddWithValue("@password", txtPassWord.Text);
// ثم امر نفذ الحفظ
cmd.ExecuteNonQuery();
//اخيرا غلق الاتصال مرة اخري بقاعدة البيانات حتي لا تحدث مشاكل
cn.Close();
}
واخيرا نضع اسم هذه الفانكشن بداخل الزرار
الان قم بتشغيل الصفحة وسوف يتم الحفظ في الداتاباز
ويمكنك ايضا استخدام الحذف او الاستدعاء بنفس الطريقة
يمكنك تحميل المثال البرمجي من هنا