نمایش نتایج 1 تا 3 از 3

نام تاپیک: راه حلی برای نمایش خطاهای SQL در C#‎‎‎

  1. #1

    Question راه حلی برای نمایش خطاهای SQL در C#‎‎‎

    سلام دوستان مبتدی هستم میخواسم پارامتر ErrorMessage از SQL رو به C#‎‎‎‎‎‎‎‎‎ ارجاع بدم با روش ایجاد Query با دارای خروجی غیر مستقیم. که کد خطا با مسیج به C#‎‎‎‎‎ ارسال شود اگر راهی نشان دهید ممنون میشم.
    Proc Query:
    CREATE PROC USP_ISP_Person
    @ID INT,
    @Name Nvarchar(20),
    @Family Nvarchar(20),
    @Age Nvarchar(20),
    @ErrorMessage NVARCHAR(50) OUTPUT
    AS
    BEGIN
    DECLARE @ErrorNumber INT
    SET @ErrorNumber=0
    SET @ErrorMessage=''
    BEGIN TRY
    INSERT Persons( ID,Name, Family,Age)
    VALUES (@ID,@Name,@Family,@Age)
    END TRY
    BEGIN CATCH
    SET @ErrorNumber= ERROR_NUMBER()
    SET @ErrorMessage= ERROR_NUMBER()
    END CATCH
    RETURN @ErrorMessage
    END

    GO
    C#‎‎‎‎‎‎‎‎‎ code:
             bool InsertPerson(int ID,string Name,string Family, int Age)
    {
    SqlConnection CN = new SqlConnection("Data Source=LENOVO\\MHD;Initial Catalog=ADONETDB;Integrated Security=True");
    try
    {
    SqlCommand Cmd = new SqlCommand();
    Cmd.CommandText = "USP_ISP_Person";
    Cmd.CommandType = CommandType.StoredProcedure;
    //

    Cmd.Parameters.AddWithValue("@ID", ID);
    Cmd.Parameters.AddWithValue("@Name", Name);
    Cmd.Parameters.AddWithValue("@Family", Family);
    Cmd.Parameters.AddWithValue("@Age", Age);
    Cmd.Connection = CN;
    CN.Open();
    SqlDataReader Dr = Cmd.ExecuteReader();
    return true;
    }
    catch (Exception Ex)
    {
    MessageBox.Show(Ex.Message);
    return false;
    }
    finally
    {
    CN.Close();
    }
    اما با Error :


    Procedure Or Function 'USP_ISP_Person' Expects Parameter '@ErrorMessage' ,Which was not Supplied

  2. #2

    نقل قول: راحلی برای نمایش خطاهای SQL در C#‎‎ ??

    ممنون از دوست خوبم ایشون گفتند :
    در کد SQL باید مقدار ErrorNumber را هم بصورت Output بنویسی تا بتوانی ان را در خروجی ببینی. و همچنین باید در C#‎‎‎‎ 2 تا پارامتر تعریف کنی و جهت پارامتر را بصورت Output قرار بدی.
    @ErrorNumber INT output
    ولی منطور ایشون رو متجه نشدم میشه کد C#‎‎‎‎ رو دوستان عزیز توضیح بدهند
    ----------------------------------------
    SQL:
    ,@ErrorNumber INT  output 

    ----------------------------------------
    C#‎‎‎‎:

    DataSqlCommand.Parameters.Add("ErrorMessage", System.Data.SqlDbType.BigInt);
    DataSqlCommand.Parameters.Add("ErrorNumber", System.Data.SqlDbType.BigInt);

    DataSqlCommand.Parameters["ErrorMessage"].Direction = System.Data.ParameterDirection.Output;
    DataSqlCommand.Parameters["ErrorNumber"].Direction = System.Data.ParameterDirection.Output;

    DataSqlCommand.ExecuteNonQuery();
    errorNumber = Convert.ToInt32(DataSqlCommand.Parameters["ErrorNumber"].Value);

  3. #3

    نقل قول: راحلی برای نمایش خطاهای SQL در C#‎‎ ??

    ممنون از دوست خوبم ایشون گفتند :
    در کد SQL باید مقدار ErrorNumber را هم بصورت Output بنویسی. و همچنین باید در C#‎‎‎ 2 تا پارامتر تعریف کنی و جهت پارامتر را بصورت Output قرار بدی.
    @ErrorNumber INT output
    ولی منطور ایشون رو متجه نشدم میشه کد C#‎‎‎ رو دوستان عزیز توضیح بدهند
    ----------------------------------------
    SQL:
    ,@ErrorNumber INT  output 

    ----------------------------------------
    C#‎‎‎:

    DataSqlCommand.Parameters.Add("ErrorMessage", System.Data.SqlDbType.BigInt);
    DataSqlCommand.Parameters.Add("ErrorNumber", System.Data.SqlDbType.BigInt);

    DataSqlCommand.Parameters["ErrorMessage"].Direction = System.Data.ParameterDirection.Output;
    DataSqlCommand.Parameters["ErrorNumber"].Direction = System.Data.ParameterDirection.Output;

    DataSqlCommand.ExecuteNonQuery();
    errorNumber = Convert.ToInt32(DataSqlCommand.Parameters["ErrorNumber"].Value);

تاپیک های مشابه

  1. راه حلی برای یک تابع API (تغییر ساعت سیستم)
    نوشته شده توسط Amir Taghavi در بخش VB.NET
    پاسخ: 9
    آخرین پست: چهارشنبه 15 شهریور 1385, 06:34 صبح
  2. شروع کار با InterBase راه حلی برای برنامه های کلاینت سرور
    نوشته شده توسط MZBCracker در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: یک شنبه 11 تیر 1385, 22:04 عصر
  3. راه حلی برای این جستجو
    نوشته شده توسط Mahdi_S_T در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: پنج شنبه 19 آذر 1383, 13:47 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •