تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] كيف أستخدم TRansaction حتى أضمن تطبيق الكود بشكل جيد
#1
السلام عليكم إخواني

أرجوا منكم قراءة هذ االكود فقد قمت بترتيبه حتى أسهل مساعدتكم لي

أقوم بترحيل قاعدة بيانات محلية إللى قاعدة أخرى بعيدة   (سطر بسطر)

كيف أستخدم TRansaction حتى أضمن تطبيق الكود بشكل جيد


ملاحظة : Transaction شغالة جيدا عندما تكون العملية على نفس القاعدة 
ملاحظة : قمت بوضع INSERT و UPDATE بذلك الشكل فقط لأوضح الفكرة 







جزاكم الله كل خير على مد يد المساعدة
الرد }}
تم الشكر بواسطة: ابراهيم ايبو
#2
السلام عليكم ورحمة الله وبركاته
اخي الكريم Sniper 
انت لم تذكر كيف تقوم بحفظ السجلات هل تأخذها من الداتا غرايد ام من الداتا تابل ؟ وهل في كل مرة تقوم بنقل سجل واحد ام كل السجلات دفعة واحدة
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
تم الشكر بواسطة: sniperjawadino
#3
شكرا أخي إبراهيم على الرد

البرنامج هو برنامج بيع لأحد المتاجر
كل ساعة هناك بيانات جديدة
فبالتالي وضعت الكود في TIMER و أقوم بنقل سجل واحد كل ثانية (يمكنني تطوير الفكرة في وقت لاحق)
آخد السجلات من الداتا غرايد اللتي تم تعبئتها من الداتا تابل
الرد }}
تم الشكر بواسطة: ابراهيم ايبو
#4
على العموم اخي sniper
اليك هذين الرابطين اجزى الله اصحابها كل الخير
https://www.youtube.com/watch?v=br8DkBklahE&t=735s

https://www.youtube.com/watch?v=eE6dPpK6O68&t=2141s
من ناحيتي ساضع لك كود حفظ استخدمته في حفظ راس الفاتورة وتفاصيل الفاتورة  حيث يتم الحفظ (عبر اللوب) من الداتاغرايد فيو فاما ان يتم الحفظ في الجدولين او لايحفظ في حال حدوث خطأ اتمنى ان يفيدك
دمت بخير ياغالي


كود :
Private Sub Btn_Save_Click(sender As Object, e As EventArgs) Handles Btn_Save.Click

       Dim trans As SqlTransaction = Cn.BeginTransaction
       Cmd = New SqlCommand
       Cmd.Connection = Cn
       Cmd.Transaction = trans
       Cn.Open()
       Try
           Cmd.CommandText = "insert into BuyMaster(Buy_Id,Buy_Code,Buy_Date,Imp_Name,Total_Buy) Values(@Buy_Id,@Buy_Code,@Buy_Date,@Imp_Name,@Total_Buy)"
           Cmd.Parameters.Add(New SqlParameter("@Buy_Id", SqlDbType.Int)).Value = Txt_Buy_id.Text
           Cmd.Parameters.Add(New SqlParameter("@Buy_Code", SqlDbType.NVarChar)).Value = Txt_Buy_Code.Text
           Cmd.Parameters.Add(New SqlParameter("@Buy_Date", SqlDbType.Date)).Value = CDate(Dtp_Buy_Date.Value.ToString("dd-MM-yyyy"))
           Cmd.Parameters.Add(New SqlParameter("@Imp_Name", SqlDbType.NVarChar)).Value = Cmb_Imp_Name.Text
           Cmd.Parameters.Add(New SqlParameter("@Total_Buy", SqlDbType.Decimal)).Value = Lbl_TotalBill.Text
           Cmd.ExecuteNonQuery()
           Cmd.Parameters.Clear()

           For i As Integer = 0 To Dgv_BuyBill.Rows.Count - 1
               Cmd.CommandText = "insert into BuyDetail(Buy_Bill_Code,Itm_Code,itm_Name,Itm_Price,Quantity,Amount,State) Values(@Buy_Bill_Code,@Itm_Code,@itm_Name,@Itm_Price,@Quantity,@Amount,@State)"

               Cmd.Parameters.Clear() ' هذا السطر مهم جدا لانه يفرغ الباراميترات في كل لفة من لوب مما يمنع تكرار القيم

               Cmd.Parameters.Add(New SqlParameter("@Buy_Bill_Code", SqlDbType.NVarChar)).Value = Dgv_BuyBill.Rows(i).Cells("Buy_Bill_Code").Value
               Cmd.Parameters.Add(New SqlParameter("@Itm_Code", SqlDbType.NVarChar)).Value = Dgv_BuyBill.Rows(i).Cells("Itm_Code").Value
               Cmd.Parameters.Add(New SqlParameter("@itm_Name", SqlDbType.NVarChar)).Value = Dgv_BuyBill.Rows(i).Cells("itm_Name").Value
               Cmd.Parameters.Add(New SqlParameter("@Itm_Price", SqlDbType.Decimal)).Value = CDbl(Dgv_BuyBill.Rows(i).Cells("Price").Value.ToString())
               Cmd.Parameters.Add(New SqlParameter("@Quantity", SqlDbType.Int)).Value = Dgv_BuyBill.Rows(i).Cells("Quantity").Value
               Cmd.Parameters.Add(New SqlParameter("@Amount", SqlDbType.Decimal)).Value = CDbl(Dgv_BuyBill.Rows(i).Cells("Amount").Value.ToString())
               Cmd.Parameters.Add(New SqlParameter("@State", SqlDbType.Bit)).Value = True
               Cmd.ExecuteNonQuery()
           Next
           trans.Commit()
           MessageBox.Show("تم حفظ البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information)

       Catch ex As Exception
           trans.Rollback()

           MessageBox.Show(ex.Message)
           'MessageBox.Show("خطأ في البيانات المدخلة لم يتم الحفظ ", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
       Finally
           If Cn.State = ConnectionState.Open Then Cn.Close()
       End Try
       Cn.Close()
   End Sub
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
تم الشكر بواسطة:
#5
شكرا شكرا شكرا أخي ابراهيم على الرابطين و على الكود الذي إستخدمته أنت سيجعلني أصحح أخطائي
جزاك الله من فضله على مساعدتك

فقط مشكلتي في الكود هو إستخدام Transaction مع إثنان من قواعد البيانات واحدة محلية و الثانية بعيدة
Transaction بالطريقة العادية لا يستطيع عمل ذلك
وجدت في مواقع أجنبية إستخدام TransactionScope فقط لم أفهم الطريقة جيدا ب C#
الرد }}
تم الشكر بواسطة: ابراهيم ايبو
#6
اخي البرمجة بحر وما اوتيت منه الا نقطة 
لم استخدم حفظ بيانات في قاعدة محلية واخرى بعيدة بل لم استخدم الى الان سوى المحلية كوني لم انجز برامج بعد 
اشكرك على TransactionScope ساقرا عنها ان شاء الله 
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
تم الشكر بواسطة: sniperjawadino
#7
ابراهيم والله إستفدنا منك كثيرا
شكرا لك على مجهودك
الرد }}
تم الشكر بواسطة: ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استفسار عن فكرة عمل برنامج نظام صندوق مالي مصغر بشكل مبسط nowiglah 9 317 12-08-22, 05:57 AM
آخر رد: Taha Okla
  [سؤال] لسلام عليكم ورحمه الله وبركاته ازاي افعل خاصيه امكانيه التعديل علي الكود أثناء تشغيل حسن الجلب 1 161 06-08-22, 07:39 PM
آخر رد: asmarsou
  الكود لا يستدعى الارقام الا الاقل من 10 حماده ممدوح البحيرى 4 167 06-08-22, 08:12 AM
آخر رد: حماده ممدوح البحيرى
  [سؤال] كيفيه ارسال رسائل من تطبيق لاخر علي نفس الجهاز حسن الجلب 2 158 17-07-22, 07:36 PM
آخر رد: حسن الجلب
Lightbulb [VB.NET] ممكن عمل هذا الكود رمضان محمد 17 794 13-07-22, 10:32 PM
آخر رد: سعود
  مشكلة في تنفبذ الكود mohamedassim 8 392 07-07-22, 12:26 AM
آخر رد: أبو خالد الشكري
  خطأ في تنفيذ الكود mohamedassim 5 288 01-07-22, 08:57 PM
آخر رد: سعود
  لخبراء التشفير (ابحث عن دالة تشفر نص بشكل مختصر وأنيق) silverlord 3 351 22-06-22, 03:38 AM
آخر رد: سعود
  ممكن طريقة لتحويل هذا الكود ابو روضة 9 627 10-06-22, 02:21 AM
آخر رد: ابو روضة
  [VB.NET] محتاج تعديل على الكود هدا AMAZ1972AMAZ 3 424 06-06-22, 06:31 PM
آخر رد: AMAZ1972AMAZ

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم