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

نام تاپیک: ایجاد تراکنش برای تابعی که دستورات sql رو اجرا میکنه

  1. #1
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    Question ایجاد تراکنش برای تابعی که دستورات sql رو اجرا میکنه

    وقت بخیر
    من برا راحتی کارام و جلوگیری از تکرار کد اومدم برای دستورات درج و ویرایش و حذف یک تابع نوشتم.
    تو اون تابع دستور رو به صورت رشته ای که تو لایه های قبلی ایجاد شده رو دریافت میکنم و اجرا میگیرم ازش.

    کد تابع هم به این صورته

    public void Run(String sql)
    {
    SqlCommand cmd = new SqlCommand();
    Connect();//اتصال به دیتا بیس
    cmd.Connection = cn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = sql;
    cmd.ExecuteNonQuery();
    DisConnect(); //قطع اتصال دیتا بیس
    }


    خب حالا میخوام بدونم میشه برای این تابع تراکنش ایجاد کرد. تا به هر دلیلی خطایی رخ داد تراکنش مانع از اعمال تغییرات بشه و رول بک انجام بشه(البته تو برنامه سعی کردم خطا ها رو کنترل کنم )

  2. #2

    نقل قول: ایجاد تراکنش برای تابعی که دستورات sql رو اجرا میکنه


  3. #3
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: ایجاد تراکنش برای تابعی که دستورات sql رو اجرا میکنه

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    transaction = connection.BeginTransaction("SampleTransaction");

    ممنون میشم این خط رو توضیح بدید.
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 27 تیر 1396 در 21:51 عصر دلیل: بهم ریختن کد

  4. #4

    نقل قول: ایجاد تراکنش برای تابعی که دستورات sql رو اجرا میکنه

    صرفا یک نام هست که میوته هر چیزی باشه یا بدون نام
    https://msdn.microsoft.com/en-us/lib...ansaction.aspx

  5. #5
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: ایجاد تراکنش برای تابعی که دستورات sql رو اجرا میکنه

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    صرفا یک نام هست که میوته هر چیزی باشه یا بدون نام
    https://msdn.microsoft.com/en-us/lib...ansaction.aspx
    من تابع ام رو به صورت زیر تغییر دادم. به نظرتون خوبه یا میشه بهتر از این هم نوشت؟؟!!


    public void Execute(String sql)
    {
    Connect();
    SqlTransaction _SqlTransaction;
    _SqlTransaction = cn.BeginTransaction();
    SqlCommand cmd = new SqlCommand();
    cmd.Transaction = _SqlTransaction;
    try
    {
    cmd.Connection = cn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = sql;
    cmd.ExecuteNonQuery();
    _SqlTransaction.Commit();
    }
    catch
    {
    _SqlTransaction.Rollback();
    }
    finally
    {
    DisConnect();
    }
    }


  6. #6

    نقل قول: ایجاد تراکنش برای تابعی که دستورات sql رو اجرا میکنه

    متد ExecuteNonQuery مقداری را بازگشت میده که میشه قهمید چند رکورد تحت تاثیر کوئری قرار گرفته‌اند؛ که معمولا این مقدار را return می‌کنند.
    لینک‌های زیر نمونه‌های خوبی از لایه دسترسی به داده (Data Access Layer) رو پیاده سازی کرده‌اند که می‌تونید ازشون کمک بگیرید
    http://aspalliance.com/837_implement...ess_layer_in_c
    https://msdn.microsoft.com/en-us/library/ms971568.aspx
    لینک زیر هم شبیه لینک‌های بالاست منتها به صورت شئ‌گرا داده‌ها را تحویل لایه بعد میده
    http://www.c-sharpcorner.com/article...late-pattern-a

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

  1. حرفه ای: دقیقا چه موقع ORM ها دستورات sql رو برای اجرا به دیتابیس می فرستند؟
    نوشته شده توسط Rejnev در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 5
    آخرین پست: شنبه 24 اردیبهشت 1390, 16:02 عصر
  2. ایجاد جدول و فیلد توسط دستورات SQL در بانک اکسس؟
    نوشته شده توسط Babak.Hassanpour در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: سه شنبه 03 اردیبهشت 1387, 16:50 عصر
  3. ایجاد Summary برای مقداری که از طریق فرمول Summarize شده
    نوشته شده توسط par1234 در بخش گزارش سازی با Crystal Report
    پاسخ: 3
    آخرین پست: چهارشنبه 24 اسفند 1384, 00:00 صبح
  4. دستورات SQL رو بعد ازنصب برنامه با InstallShield چطور اجرا کنم؟
    نوشته شده توسط mehdi_moosavi در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: جمعه 23 دی 1384, 10:26 صبح
  5. تابعی که برنامه ما رو minimize کنه
    نوشته شده توسط hassan_kahrizy در بخش C#‎‎
    پاسخ: 4
    آخرین پست: شنبه 15 مرداد 1384, 17:11 عصر

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

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

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