PDA

View Full Version : ارسال پارامتر به Storeprocedure



Future
دوشنبه 07 تیر 1389, 19:13 عصر
سلام دوستان
من یه Storeprocedure دارم در محیط اس کیو ال و می خوام که در برنامم ازش استفاده کنم. باید در برنامم یه سری پارامتر بهش پاس کنم. میشه یه نگاه به این برنامه داشته باشید.
چون واقعا گیج شدم و نمی دونم چی بنویسم بقیش رو.
ممنون میشم اگه کمک کنید.

daryasalar
دوشنبه 07 تیر 1389, 19:30 عصر
سلام دوستان
من یه Storeprocedure دارم در محیط اس کیو ال و می خوام که در برنامم ازش استفاده کنم. باید در برنامم یه سری پارامتر بهش پاس کنم. میشه یه نگاه به این برنامه داشته باشید.
چون واقعا گیج شدم و نمی دونم چی بنویسم بقیش رو.
ممنون میشم اگه کمک کنید.
برنامه كجا هست؟؟

rana-writes
دوشنبه 07 تیر 1389, 21:32 عصر
سلام اول که


برنامه كجا هست؟؟


بعد هم یه نمونه ارسال پارامتر به StoredProcedure و استفاده از اون تو برنامه براتون میذارم شاید بتونین ازش ایده بگیرین
این Stored برای درج توی یه جدول استفاده شده:
کد StroedProcedure

CREATE PROCEDURE dbo.Ha_InsertPost
(
@UserName nvarchar(10),
@PostTitle nvarchar(200),
@PostContent ntext,
@PostYear nchar(4),
@PostMonth nchar(2),
@PostDay nchar(2),
@PostTemp tinyint,
@SumComment int
)
AS
BEGIN TRANSACTION
INSERT INTO Halgheh_Post (UserName, PostTitle, PostContent,PostYear,PostMonth, PostDay,PostTemp,SumComment)
VALUES (@UserName, @PostTitle, @PostContent, @PostYear,@PostMonth,@PostDay, @PostTemp,@SumComment)


IF @@ERROR<>0
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
GO


تابع درج استفاده شده در یک کلاس به نام PostDataAccess در برنامه با توجه به Stored بالا


public static int AddPost(string UserName, string PostTitle, string PostContent, string PostYear,string PostMonth,string PostDay, int PostTemp,int SumComment)
{
int roweffect = 0;
using (SqlConnection connection = ConnectionManager.ConnectToHalghehDB())
{
SqlCommand command = new SqlCommand("Ha_InsertPost", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = UserName;
command.Parameters.Add("@PostTitle", SqlDbType.NVarChar).Value = PostTitle;
command.Parameters.Add("@PostContent", SqlDbType.NText).Value = PostContent;
command.Parameters.Add("@PostYear", SqlDbType.NVarChar).Value = PostYear;
command.Parameters.Add("@PostMonth", SqlDbType.NVarChar).Value = PostMonth;
command.Parameters.Add("@PostDay", SqlDbType.NVarChar).Value = PostDay;
command.Parameters.Add("@PostTemp", SqlDbType.TinyInt).Value = PostTemp;
command.Parameters.Add("@SumComment", SqlDbType.Int).Value = SumComment;
roweffect = command.ExecuteNonQuery();
}
return roweffect;
}


استفاده از تابع بالا در صفحه مورد نظر در برنامه:

int roweffect = PostDataAccess.AddPost(UserName, PostTitle, Content, TxtYear.Text, TxtMonth.Text,
TxtDay.Text, temp, sumcomment);

موفق باشین

Future
دوشنبه 07 تیر 1389, 21:51 عصر
دوستان میشه به این فایل نگاه کنید. من واقعا گیج شدم. ممنون میشم اگه کمک کنید.

aminghaderi
دوشنبه 07 تیر 1389, 22:34 عصر
شاید بتونین ازش ایده بگیرینخیلی عالی و تمیز و مرتب و ...
کاش همه مثل شما کد بنویسند.:تشویق:

Future
سه شنبه 08 تیر 1389, 08:01 صبح
سلام دوستانو میشه یه نفر به این برنامه یه نگاه کنه. بدجوری گیج شدم. نمی دونم در قسمت Controller چی بنویسم.
لطفا کمک کنید.

Behrouz_Rad
یک شنبه 13 تیر 1389, 00:29 صبح
برادر، شما که یک پروژه ی MVC با Template پیش فرض درست کردی و فقط کد Insert رو نوشتی. UI رو طراحی نکردی! نباید انتظار داشته باشی که کسی از اول واست پروژه ای رو بنویسه.
پیشنهاد من این هست که مطالعه ای مقدماتی بر روی MVC داشته باشید.
باید route رو در خاصیت action برای form تعیین کنی. با همان نام route یک Action ایجاد کنی. یک پارامتر از نوع کلاسی که قصد داری Property هاش رو در دیتابیس ذخیره کنی برای اون تعریف کنی. نام TextBox ها رو برابر با نام اون Property ها قرار بدی. در هنگام POST صفحه، MVC به طور خودکار مقادیر TextBox های همنام با Property های کلاس رو در Property های کلاس قرار میده. حال مقادیر اون کلاس رو در دیتابیس ذخیره می کنی.

موفق باشید.

Future
یک شنبه 13 تیر 1389, 05:52 صبح
خیلی خیلی ممنون. آره متوجه شدم.
آیا کتابی یا PDF در مورد MVC سراغ دارید. من خودم چند تا دارم ولی واضح توضیح ندادن.

Behrouz_Rad
یک شنبه 13 تیر 1389, 11:06 صبح
Beginning MVC محصول مشترک برادر کیوان نیری و Simone Chiaretta از انتشارات WROX و ASP.NET MVC Unleashed برادر Stephen Walther از انتشارات SAMS خوب هستند.

موفق باشید.

araz_pashazadeh
پنج شنبه 31 تیر 1389, 19:59 عصر
سلام
من این تیکه کد شما را در داخل sp خودم قرار دادم ولی خطا داد ممنون میشم اگه این تکه کد برنامه را توضیح بدین

IF @@ERROR<>0 ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

hlikehamed
پنج شنبه 31 تیر 1389, 22:26 عصر
سلام
من این تیکه کد شما را در داخل sp خودم قرار دادم ولی خطا داد ممنون میشم اگه این تکه کد برنامه را توضیح بدین

IF @@ERROR<>0 ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION


سلام.
من هم این چند خط رو سوال داشتم.
استفاده از اون لازمه؟ مهمترین کاربرد این چندخ ط کد چیه؟

البته حدس میزنم برای بررسی این نکته که آیا پروسیجر به درستی اجرا شده یا نه استفاده میشه. و میشه با مقدار برگردانده شده این نکته رو چک کرد. درسته؟

و یک سوال دیگه. مقداری که برمیگرده محدودیت داره؟ مثلا 0 یا 1 ؟ یا مقادیر متفاوتی برگردونده میشه؟