PDA

View Full Version : تعداد سطرهای اعمال شده بعد از executeNonQuery



Naghibi
شنبه 30 مرداد 1395, 12:34 عصر
با سلام
من یه قطعه کد نوشتم که یه sp رو اجرا میکنه و اطلاعات مشتری در دیتابیس ثبت میشه. می خوام اگه عملیات ثبت درست انجام شد بقیه فرآیندها اتفاق بیفته. دستور رو که اجرا می کنم بعد از ExecuteNonQuery مقدار خروجی -1 هست در صورتی که عملیات ثبت درست انجام شده!! کسی می دونه مشکل کار کجاست؟
اینم کد من:


SqlCommand Cmd = new SqlCommand("SP_InsertCustomer", Conn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add(new SqlParameter("@CustomerID", Datatable1.Rows(0).Item("CustomerID").ToString));
int numberOfRows = Cmd.ExecuteNonQuery();


چه جوری متوجه بشم ثبت درست انجام شده؟

شهابسلطانی
شنبه 30 مرداد 1395, 13:58 عصر
با سلام
من یه قطعه کد نوشتم که یه sp رو اجرا میکنه و اطلاعات مشتری در دیتابیس ثبت میشه. می خوام اگه عملیات ثبت درست انجام شد بقیه فرآیندها اتفاق بیفته. دستور رو که اجرا می کنم بعد از ExecuteNonQuery مقدار خروجی -1 هست در صورتی که عملیات ثبت درست انجام شده!! کسی می دونه مشکل کار کجاست؟
اینم کد من:


SqlCommand Cmd = new SqlCommand("SP_InsertCustomer", Conn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add(new SqlParameter("@CustomerID", Datatable1.Rows(0).Item("CustomerID").ToString));
int numberOfRows = Cmd.ExecuteNonQuery();


چه جوری متوجه بشم ثبت درست انجام شده؟سلام
چرا از Try,catch استفاده نمیکنید
تا درصورت خطاپیام رو بهتون برگردونه
یا میتونید از messagebox هم استفاده کنید
یا بازهم میتونید از error Provider هم استفاده کنید
ولی همون try,catch خیلی خوبه

Naghibi
یک شنبه 31 مرداد 1395, 08:42 صبح
اصلا خطایی رخ نمیده، همه چی درست توی دیتابیس ثبت میشه فقط مقدار خروجی -1 میشه

hamid_hr
یک شنبه 31 مرداد 1395, 08:58 صبح
کدهایی که برا sp نوشتین رو بزارین ببینیم چطور نوشتین
اون sp داره مقدار رو برمیگردونه. هر چی هشت باید اونجا باشه

Naghibi
یک شنبه 31 مرداد 1395, 10:01 صبح
اینم کد های sp


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[SP_InsertCustomer]
(@CustomerID bigint)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [dbo].[CustomerTbl]
([CustomerID])
VALUES
(@CustomerID)
END

Naghibi
یک شنبه 31 مرداد 1395, 10:07 صبح
مشکل رو پيدا کردم، همین دستور SET NOCOUNT ON توی sp مشکل رو ایجاد کرده بود. آقای hamid_hr همین جواب شما باعث شد به جای اینکه توی کد برنامه دچار مشکل بگردم، برم سراغ sp. ممنونم.