28-01-21, 04:44 AM
السلام عليكم
قمت بإنشاء transaction
لتراجع عن الحفظ عند وجود خطاء
عبارة عن جدول رأس الفاتورة
وجدول الفاتورة
قمت بتجربة الكود اول مرة اشتغل. لكن بعد التجربة مرة أخري. لم يعمل
لو تركت الداتا جريد فارغة والتكوين الخاص بجدول الفاتورة
ليحفظ فى جدول رأس الفاتورة ولم يحفظ فى جدول الفاتورة بدون ظهور خطاء
ارجو التعديل أو تبديل الكود بكود افضل لمنع حدوث الخطاؤ
قمت بإنشاء transaction
لتراجع عن الحفظ عند وجود خطاء
عبارة عن جدول رأس الفاتورة
وجدول الفاتورة
قمت بتجربة الكود اول مرة اشتغل. لكن بعد التجربة مرة أخري. لم يعمل
لو تركت الداتا جريد فارغة والتكوين الخاص بجدول الفاتورة
ليحفظ فى جدول رأس الفاتورة ولم يحفظ فى جدول الفاتورة بدون ظهور خطاء
ارجو التعديل أو تبديل الكود بكود افضل لمنع حدوث الخطاؤ
كود :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'If conn.State = ConnectionState.Closed Then
'End If
conn.Open()
'========تعريف المتغيرات
Dim sql As String = ""
Dim adp As SqlDataAdapter
'dim DS as datatable
Dim DT As DataTable
Dim sqlCmd As SqlCommand
Dim CmdBuild As SqlCommandBuilder
Dim trans As SqlTransaction = conn.BeginTransaction
Try
'=========اضافة الجدول الرئيسي
sqlCmd = New SqlCommand("select * from orderHiderTbl", conn)
sqlCmd.Transaction = trans ' فتح الترانسكشن
adp = New SqlDataAdapter(sqlCmd)
DT = New DataTable
adp.Fill(DT)
Dim DR = DT.NewRow
DR!orderNumb = txtOrdNumb.Text
DR!orderDate = ddate.Value.Date
DR!userCode = txtUserCode.Text
DR!CusCode = txtCusCode.Text
DR!UserName = txtUserName.Text
DR!TotleOrder = txtTotlBill.Text
DR!CountItem = txtCountItem.Text
DR!TotlCommis = txtTotCoimm.Text
DR!SumItem = txtSumItem.Text
DT.Rows.Add(DR)
CmdBuild = New SqlCommandBuilder(adp)
adp.Update(DT)
'=========حفظ جدول التفاصيل
sql = "select * from OrdersTbl"
sqlCmd = New SqlCommand(sql, conn)
sqlCmd.Transaction = trans
adp = New SqlDataAdapter(sqlCmd)
DT = New DataTable
adp.Fill(DT)
For i = 0 To dvgOrder.Rows.Count - 1
DR = DT.NewRow
DR!orderNumb = txtOrdNumb.Text
DR!ItemCode = dvgOrder.Rows(i).Cells(0).Value
DR!ItemPrice = dvgOrder.Rows(i).Cells(5).Value
DR!qty = dvgOrder.Rows(i).Cells(6).Value
DR!SumPrice = dvgOrder.Rows(i).Cells(7).Value
DR!TotlCommis = dvgOrder.Rows(i).Cells(8).Value
DR!itemRequired = dvgOrder.Rows(i).Cells(9).Value
DT.Rows.Add(DR)
CmdBuild = New SqlCommandBuilder(adp)
adp.Update(DT)
Next
trans.Commit()
MsgBox("تمت عملية الاضافة بنجاح", MessageBoxIcon.Information, "رسالة تاكيد")
Catch ex As Exception
trans.Rollback()
MsgBox(ex.Message, MessageBoxIcon.Error, "خطاء")
End Try
End Sub