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

نام تاپیک: UpdateException

  1. #1
    کاربر دائمی آواتار f.beigirad
    تاریخ عضویت
    مهر 1391
    محل زندگی
    شهریار تهران
    پست
    329

    Exclamation UpdateException

    با سلام و عرض ادب.

    من توی دیتابیسم ، در جدول اشخاص فیلد کد ملی رو Unique قرار دادم.
    پس قاعدتا وقتی من بخوام کدملی تکراری وارد کنم باید خطایی رخ بده.

    در حال حاضر این خطا رخ میده ولی Exception خاصشو گیر نمیارم.
    قسمت اصلی متن خطا اینه :

    System.Data.UpdateException was unhandled
    HResult=-2146233087
    Message=An error occurred while updating the entries. See the inner exception for details.
    Source=System.Data.Entity

    InnerException: System.Data.SqlClient.SqlException
    HResult=-2146232060
    Message=Violation of UNIQUE KEY constraint 'UK_Persons'. Cannot insert duplicate key in object 'dbo.Persons'.
    The statement has been terminated.
    Source=.Net SqlClient Data Provider
    ErrorCode=-2146232060
    Class=14
    LineNumber=1
    Number=2627
    Procedure=""
    Server=.\SQLEXPRESS
    State=1

    همونطوری که مشخصه این خطا مربوط به کلاس UpdateException میشه.
    من با نوشتن کد زیر میتونم از توقف برنامه جلوگیری کنم(تست کردم) ولی نمیتونم شناسایی کنم چه Exception ی هست.
    catch(UpdateException ex)
    {

    }

    در sqlException کلاس Number هست که بتونیم نوع دقیق Exception رو تشخیص بدیم.ولی در UpdateException شماره ی خطایی وجود نداره.


    من چطوری میتونم انواع Exception های UpdateException رو تشخیص بدم؟
    یک هفته هست که دارم میگردم.ولی مطلب خاصی پیدا نکردم.

    شما برای تشخیص این خطاهای دیتابیس چکار میکنید؟

    دوستان عزیز خواهشا نگید قبل از درج رکورد ، قابل درج بودن کد ملی مورد نظرو چک کن.
    چراکه قابل ثبت بودن کد ملی رو میشه با یه کوئری تشخیص داد ، ولی اگر بخوام رکوردی رو حذف کنم که کلید اصلی داره و این کلید اصلی درجدولهای دیگه به عنوان کلید خارجیه، 100 در 100 برنامه خطا میده و عمل حذف رو انجام نمیده(البته نمیخوام از Cascade استفاده کنما.چون تراکنشهای مالیم حذف میشه).اینو چکار کنم؟؟
    نتیجه: باید خطا های دیتابیس رو هندل کنم .
    ولی نمیدونم چجوری؟

  2. #2
    کاربر دائمی آواتار Hajivandian
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    تهران
    سن
    35
    پست
    368

    نقل قول: UpdateException

    سلام،

    توسط کد زیر میتونید خطای مربوط به اس کیو ال رو هندل کنید:
    catch(Exception ex)
    {
    SqlException sqlex= ex.InnerException as SqlException;
    if(sqlex != null){
    // Sql exception
    }
    else{
    // Other exception
    }
    }

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

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

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