دورة السي شارب
الدرس 19- Stored
Procedures
السلام عليكم ورحمة الله وبركاته...
مفهوم ال Stored
Procedures :
إن ال Stored Procedures
هي عبارة عن جملة إستعلام مخزنة في قاعدة البيانات وإستدعائها يشبه
إستدعاء أي Method كما سوف ترى...
لنرى مثال لضرورة إستخدام ال Stored Procedures ...
أولا إنشئ مشروع جديد وقاعدة بيانات وسمها كما سميناها
سابقا mydatabase
والان لو كنا مثلا نريد المستخدم أن يضع إسم الموظف
المراد جلب بياناته في textBox فقرر في نفس اللحظة أن يصبح مبرمج فكتب مثلا ...
سوف يكون الكود لتنفيذ ذلك:
كود:
"Select FirstName,Age
From mytable Where FirstName = '{0},textBox1.Text"
الان ليس المهم الكود وإنما المستخدم فتصور
لو الأخ كتب مثلا...
Drop mytable
!!!
أو أي جملة إستعلام أخرى !!!
ما السبيل لتفادي ذلك ؟
هنا جاء دور ال Stored
Procedures لكي لا
يتمكن المستخدم من تنفيذ جمل إستعلام من خلال كتاباته...
الان أضف لقاعدة البيانات Stored
Procedures كالتالي:
( لقد قمت بإنشاء قاعدة بيانات بإسم TD_Data و جدول
بها بإسم tb1 يحوي على ثلاث أعمدة هي:
كود:
FName (nchar(10))
LName(nchar(10()
Age(bigint)
من مجلد ال Stored
Procedures إختر Add New Stored Procedures
والان أكتب بها...
كود:
Create PROCEDURE dbo.GetAgesAvg
@agesavg
int = 0 output
AS
select @agesavg = avg(Age) From tb1
RETURN @agesavg
ثم ضع Button
و textBox وفي الحدث click لل button أكتب...
SqlConnection sqlcn = new SqlConnection("Data
Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\TD\Documents\TD_Data.mdf;Integrated
Security=True;Connect Timeout=30;User Instance=True");
string sqlcmdstr = "GetAgesAvg";
SqlCommand sqlcmd = new SqlCommand(sqlcmdstr, sqlcn);
SqlParameter par = new SqlParameter();
sqlcmd.CommandType = CommandType.StoredProcedure;
par.ParameterName = "@agesavg";
par.Direction = ParameterDirection.Output;
par.SqlDbType = SqlDbType.Int;
sqlcmd.Parameters.Add(par);
try
{
sqlcn.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
sqlcmd.ExecuteNonQuery();
textBox1.Text =
sqlcmd.Parameters("@agesavg").Value.ToString();
sqlcn.Close();
هكذا في جمل الإستعلام هذه سوف يعود ال
parameter بمعدل الأعمار
التي في الجدول
( مجموع الأعمار تقسيم عددها )
وعلى هذا النحو تستخدم ال Stored
Procedures ....
مع تحياتي/ عبدالقادر البعداني
إلى اللقاء في الدرس القادم إن شاء الله...
ليست هناك تعليقات:
إرسال تعليق