PDA

View Full Version : سوال: فراخوانی transaction با مقدار ورودی در سی شارپ



MINA B
دوشنبه 03 شهریور 1393, 17:15 عصر
سلام دوستان .من یه transaction برای حذف یک رکورد از جدول نوشتم که حذف با استفاده از آیدی که قراره از سمت سی شارپ بهش داده بشه صورت می گیره حالا چطوری باید یک transaction با یک ورودی رو در سی شارپ فراخوانی کنم ؟ اصلا همچین چیزی میشه؟هر چی سرچ کردم همه توی کوئری مقدار داده بودن و از بیرون مقداری نگرفته بودن.
اینم کوئری



BEGIN TRANSACTION;
declare @c int
BEGIN TRY
-- Generate a constraint violation error.
DELETE FROM tbl_logs
WHERE ID = @c;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;


IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
END CATCH;


IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
GO
راستش کد رو هم از یه سایت دیدم چون واقعا از tansaction سر در نمیارم.اما کد درسته و توی sql به آیدی مقدار دادم و اجرا شد.
خواهش می کنم راهنمایی بفرمایید.خیلی فوریه.

plus
دوشنبه 03 شهریور 1393, 19:47 عصر
چه Transaction استفاده کنید چه نکنید این یک Query هست...میتونید Query رو در یک Stored Procedure بگذارین و از #C اون SP رو اجرا کنید یا اینکه Query رو مستقیما از #C به دیتابیس بفرستید.در هر دو صورت، اگه از ADO استفاده میکنید با استفاده از مشخصه Parameters مربوط به SqlCommand میتونید به SP یا Query مربوطه پارامتر بدین.

MINA B
دوشنبه 03 شهریور 1393, 20:00 عصر
چه Transaction استفاده کنید چه نکنید این یک Query هست...میتونید Query رو در یک Stored Procedure بگذارین و از #C اون SP رو اجرا کنید یا اینکه Query رو مستقیما از #C به دیتابیس بفرستید.در هر دو صورت، اگه از ADO استفاده میکنید با استفاده از مشخصه Parameters مربوط به SqlCommand میتونید به SP یا Query مربوطه پارامتر بدین.
اگه بخوام از stored procedure استفاده کنم میشه بگید چطوری transaction رو در stored procedure بذارم مثلا بعد از as این رو بذارم؟

plus
دوشنبه 03 شهریور 1393, 20:21 عصر
اگه بخوام از stored procedure استفاده کنم میشه بگید چطوری transaction رو در stored procedure بذارم مثلا بعد از as این رو بذارم؟
بله مثل هر query دیگه ای.

CREATE PROCEDURE TransactedProcedure
AS
BEGIN
-- Insert statements for procedure here
BEGIN TRANSACTION
--
--
--
COMMIT TRANSACTION
END

MINA B
دوشنبه 03 شهریور 1393, 20:51 عصر
بله مثل هر query دیگه ای.

CREATE PROCEDURE TransactedProcedure
AS
BEGIN
-- Insert statements for procedure here
BEGIN TRANSACTION
--
--
--
COMMIT TRANSACTION
END

ممنون.درست شد.