PDA

View Full Version : حرفه ای: استفاده از storedprocedure در برنامه نویسیی سه لایه



ghaedi70
دوشنبه 20 بهمن 1393, 22:52 عصر
سلام دوستان.من چ جوری می تونم ب جای اینکه در کلاس مستقیم کوری بنویسم از استور استفاده کنم.
و بعد اونو فراخونی کنم و ب پارامتراش مقدار بدم

mrprestige
دوشنبه 20 بهمن 1393, 23:17 عصر
سلام دوستان.من چ جوری می تونم ب جای اینکه در کلاس مستقیم کوری بنویسم از استور استفاده کنم.
و بعد اونو فراخونی کنم و ب پارامتراش مقدار بدم

سلام دوست عزیز وقتت بخیر ، شما که میخوای از SP استفاده کنی باید به این شیوه عمل کنی اول داخل محیط برنامه نویسی که میشی پنل سمت چپت تب وجوداره به نام (Serve Explorer ( Shift +Ctrl+S اول باید دیتابیس تون رو داخلش مشخص کنید بعد مراحل شناسوندن دیتابیس رو معرفی کردید توی این قسمت که مشخص کردن داخل عکس کلیک راست میکنید و new store prsedure رو میزنید وارد صفحه SP میشید

128330

توی این قسمت دستورات SP رو مینویسید ( البته قبلش اینو بگم باید روی دستورات SQL مسلط باشید ) مثلا برای ثبت اطلاعات از این دستور استفاده میکنیم



CREATE PROCEDURE [dbo].[sabt] @field1 int , @field2 nvarchar(10)


AS
insert into نام جدول (@field1,@field2)

RETURN


دقت کنید خط به خط براتون توضیح میدم عبارت اول (CREATE PROCEDURE) که ثابت هست عبارت بعدی ([dbo].[اسم] ) دقت کنید حتما باید اول عبار dbo ذکر شود بعد از اون یه نقطه و سپس اسم دلخواه برای SP ( که من اینجا نامش رو sabt گذاشتم ) بعد از اون نام فیلد هارو همرا با علامت @ و نوع اون ها مینویسید بقه ماجرا هم از کد مشخصه دستور ذخیره کردن و ...

بعد از اینکه کدتون رو نوشتید Ctrl+S رو بزنید اگه مراحل رو درست رفته باشید SP شما ذخیره شده ( عکس شماره 2 ) حالا باید روی پروژتون ( پنل سمت راست تب Solution Explorer ) کلیک راست بکنید و new Item رو بزنید توی کادر باز شده LINQ To SQL رو پیدا و انتخاب کنید نامش رو تغییر بدید ( مثلا mySP ) صفحه ای براتون نمایش داده میشه ( عکس 3 ) توی ناحیه شماره 1 استور پروسیجر شما قرار میگیره و توی ناحیه شماره دو جدولی که میخوایید تغییرات روش اعمال بشه 128331 128332

حالا شما از تب Server Explorer جدول مورد نظرتو انتخاب کن و توی قسمت مربوطه drag کن همینطور برای Store procedure اونم از Server Explorer انتخاب کن و drag کن داخل قسمت مربوطه حالا صفحه رو ببند و وارد محیط کد نویسی بشید یه دکمه و دو تا textbox ( به تعداد فیلد های جدولمون ) روی صفحه بزارید ( از اونجایی که ما SP برای ثبت کردن نوشتیم نامش رو insert بزارید ) و دکمه اینو بنویسید




mySP sp=new mySP();
sp.sabt(textbox1.text,textbox2.text);

همین .. شما الان با دوتا خط عملیات insert رو انجام دادید . اینم از StorePrcedure که فرمودید سعی کنید بقیه دستوراتش هم یاد بگیرید .

موفق و پیروز باشید .

ghaedi70
سه شنبه 21 بهمن 1393, 00:19 صبح
دوست عزیز ممنون از راهنماییتون.من با sp مشکلی ندارم و کلا از ado استفاده میکنم.کلا ماهیت سوالم درمورد اینه ک میخوام از ی چیزی شبیه برنامه نویسی سه لایه استفاده کنم.منتها ب جای اینکه مستقیم کد بنویسم از sp استفاده کنم.
اگه بخوام واضح تر بگم.میخوام تو ی کلاس ی تابع تعریف کنم ک مثلا عمل درج با sp انجام بده .و

SabaSabouhi
سه شنبه 21 بهمن 1393, 08:20 صبح
دوست عزیز ممنون از راهنماییتون.من با sp مشکلی ندارم و کلا از ado استفاده میکنم.کلا ماهیت سوالم درمورد اینه ک میخوام از ی چیزی شبیه برنامه نویسی سه لایه استفاده کنم.منتها ب جای اینکه مستقیم کد بنویسم از sp استفاده کنم.
اگه بخوام واضح تر بگم.میخوام تو ی کلاس ی تابع تعریف کنم ک مثلا عمل درج با sp انجام بده .و

سلام
منظورت از «یه چیزی شبیه به برنامه‌نویسی 3 لایه» چی بود؟ بالاخره یا می‌خوای چند لایه کار کنی یا نه.
اگر واقعاً از ساختار چند لایه استفاده می‌کنی، تو لایه‌ی DAL باید متدهایی رو بنویسی برای ارتباط با SP ها
بجای این که تو خود لایه‌ی DAL مثلاً Insert کنی، SP مربوطه رو فراخوانی کنی.
در واقع مثل این می‌مونه که یه لایه به لایه‌ها اضافه شده باشه. که مزایا و معایب خودش رو داره.

صبا صبوحی

پانوشت: چرا بجای این کار EF رو امتحان نمی‌کنی؟