الطريقة الأساسية لاستدعاء إجراء مخزن واستخدام القيمة المرجعة
الكاتب:Eve Cole
وقت التحديث:2009-05-31 00:08:21
لم أجد أبدًا طريقة جيدة للإشارة إلى الإجراءات المخزنة بقيم الإرجاع، مما جعلني أتخذ الكثير من المنعطفات في إضافة البيانات مؤخرًا، بعد استشارة الكثير من المعلومات، وجدتها أخيرًا في مثيل Microsoft.
قم أولاً بكتابة إجراء مخزن بقيمة إرجاع
إنشاء الإجراء proc_name
@para1 nchar(20)، --معلمات الإدخال
@para2 int = null out --معلمات الإخراج لاستخدام البرنامج
مثل
تعيين nocount على
إذا (غير موجود (اختر * من الموظف حيث em_name=@para1 ))
يبدأ
أدخل في قيم الموظف (الاسم) (@para1)
حدد @para2=@@identity -- يقوم بإرجاع معرف السجل المضاف
return 1 - يُرجع ما إذا كانت البيانات قد تمت إضافتها بنجاح
نهاية
آخر
العودة 0 - فشل العودة
يذهب
ثم هناك طريقة استدعاء الإجراء المخزن
أمر SQLcommand؛
Command = new sqlcommand(proc_name,new sqlconnection(connectionstr));
Command.paraments.add("@para1"),"name1"); // معلمات الإدخال، اسم الموظف
Command.paraments.add(new sqlparament("@para2"، // إنشاء معلمة إخراج
SqlDbType.Int; // نوع بيانات المعلمة
ParamenterDirection.OutPut، // نوع الإدخال والإخراج
0,
0,
سلسلة فارغة،
داتا روو فيرستيون. الافتراضي،
خالية) // قيمة المعلمة، مطلوبة عند إدخال المعلمات
);
Command.commandtype=commandtype.StoredProcedure;
Command.connection.open();
Command.executenonQuery();
int pkid=(int)command.Parameters["@para2"].value; // احصل على قيمة معلمة الإخراج
Command.connection.Close();
فيما يلي معلمات الإخراج المرجعية. إذا كنت تريد الإشارة إلى القيمة المرجعة (سواء تمت إضافة البيانات بنجاح)، فأنت بحاجة فقط إلى تغيير نوع ParamenterDirection إلى قيمة الإرجاع، ثم قم بتغيير اسم المعلمة بنفسك.