PDA

View Full Version : سوال: ترنزکشن در asp



starland
شنبه 04 آبان 1392, 10:20 صبح
سلام
من با ترنزکشن تا حالا تو asp کار نکردم می خوام وقتی قراره چند رکورد تو دیتابیس اینزرت کنم با یک حلقه for
اگر یکی از اینزرتها انجام نشد بقیه هم انجام نشه ممکنه راهنماییم کنید

starland
شنبه 04 آبان 1392, 14:48 عصر
یعنی کسی نمی دونه ؟؟؟؟؟؟؟؟؟:افسرده:

aspismylove
شنبه 04 آبان 1392, 15:15 عصر
سلام
من با ترنزکشن تا حالا تو asp کار نکردم می خوام وقتی قراره چند رکورد تو دیتابیس اینزرت کنم با یک حلقه for
اگر یکی از اینزرتها انجام نشد بقیه هم انجام نشه ممکنه راهنماییم کنید

حالا چ لزومیه که حتما با ترنزکشن انجامش بدی ؟؟؟ :متفکر:

starland
شنبه 04 آبان 1392, 15:28 عصر
خوب راه بهتر چیه ؟؟؟؟؟ من با stored procedure هم می تونم این کارو انجام بدم اما مشکل اینه که نمی دونم چطوری مقدار countfor را با مقدار textbox که کاربر در صفحه وارد می کنه پر کنم در SP !!!

ALTER PROCEDURE [dbo].[sp_insertConsumer]
@codeconsumer VARCHAR,
@date DATETIME,
@status VARCHAR,
@idmodel INT,
@price INT,
@totalcount VARCHAR,
@type VARCHAR,
@note VARCHAR,
@position VARCHAR,
@entrydate datetime,
@countfor INT

AS



DECLARE @Iterator INT
SET @Iterator = 0

WHILE (@Iterator < countfor)
BEGIN
INSERT INTO [dbo].[Consumer] ([Code_Consumer], [ID_Model], [Consumer_Price], [Total_Count], [Type], [Note], [Position], [Entry_Date], [Status])
VALUES (@codeconsumer, @idmodel, @price, @totalcount, @type, @note, @position, @entrydate, @status)

Set @Iterator = @Iterator + 1
END

aspismylove
شنبه 04 آبان 1392, 15:32 عصر
خوب راه بهتر چیه ؟؟؟؟؟ من با stored procedure هم می تونم این کارو انجام بدم اما مشکل اینه که نمی دونم چطوری مقدار countfor را با مقدار textbox که کاربر در صفحه وارد می کنه پر کنم در SP !!!

ALTER PROCEDURE [dbo].[sp_insertConsumer]
@codeconsumer VARCHAR,
@date DATETIME,
@status VARCHAR,
@idmodel INT,
@price INT,
@totalcount VARCHAR,
@type VARCHAR,
@note VARCHAR,
@position VARCHAR,
@entrydate datetime,
@countfor INT

AS



DECLARE @Iterator INT
SET @Iterator = 0

WHILE (@Iterator < countfor)
BEGIN
INSERT INTO [dbo].[Consumer] ([Code_Consumer], [ID_Model], [Consumer_Price], [Total_Count], [Type], [Note], [Position], [Entry_Date], [Status])
VALUES (@codeconsumer, @idmodel, @price, @totalcount, @type, @note, @position, @entrydate, @status)

Set @Iterator = @Iterator + 1
END

اگه درست متوجه شده باشم، تو میخای مقداری که کاربر توی تکست باکس پر میکنه رو پاس بدی به پروسیجرت ؟؟؟

اگه این و میخای انجام بدی، بیا پارامتری بفرس به پروسیجرت و بعد اون و توی پروسیجر استفاده کن، خیلی سادس که !!!

starland
شنبه 04 آبان 1392, 15:39 عصر
بله این کارو می خوام انجام بدم اما متغیر countfor را در SP ایراد می گیره sql و خطا میده :افسرده:

starland
شنبه 04 آبان 1392, 15:41 عصر
Invalid column name 'countfor' این error را میده !!!

aspismylove
شنبه 04 آبان 1392, 15:42 عصر
یعنی چی خطا میگیره ؟؟!؟!؟!
یعنی اگه تو بیای و توی خط زیر بجای countfor از ی پارامتر ارسالی استفاده کنی SQL خطا میگیره ازت :متعجب: :متفکر: ؟؟؟؟

WHILE (@Iterator < countfor)