تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[نقاش] عندي مشكلة فى الكود الموجود داخل الموضوع
#1
أنا أقوم على عمل مشروع لضبط الحضور والانصراف والتأخير للموظفين بشركتي المشكلة اللتى واجهتني أنني أستعمل حدث TextChanged للقيام بإدخلات البيانات عن طريق الباركود كل أموري تمام لهذا الحد من جلب بيانات موظفين وكود حفظ بيانات اللى اريده أن يقوم الكود الذي أنشئتة بالتحقق من عدم وجود إزدواجية فى البيانات أى لايدخل الموظف مرتين فى نفس اليوم وقبل كل ذلك يفحص قاعدة البيانات فإذا وجد فيها بيانات يقوم بفحص ازدواجية البيانات واذا لم يجد يخزن مباشرة ولكنى بعدما قمت بانشاء الكود لاحظت أن البيانات يتم تخزينها بطريقة مزدوجة فى نفس الوقت ومش عارف الخلل منين فهل أحد يساعدنى
كود :
Dim command As SqlCommand
       command = New SqlCommand("SELECT COUNT(EmpName) as EmpNameCount FROM EmployeesAttend", con)
       Dim reader As SqlDataReader = command.ExecuteReader()
       '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
       While (reader.Read())
           If reader("EmpNameCount") = 0 Then
               'حالة عدم وجود بيانات
               'حفظ البيانات مباشرة
               GetEmpInfo()
               SaveEmpInfATT()
               Clear()

           Else
               'حالة وجود بيانات
               ' التأكد من عدم وجود ازدواجية
               If con.State = ConnectionState.Open Then
                   con.Close()
               End If
               con = New SqlConnection(cs)
               con.Open()
               Dim cmd11 As New SqlCommand(" Select EmpCode from EmployeesAttend Where EmpCode = '" & TxtCode.Text.Trim & "' and AttendsDay='" & Label8.Text.Trim & "' and AttendsDate = '" & Label5.Text.Trim & "'  ", con)
               Dim dr1 As SqlDataReader = cmd11.ExecuteReader()
               '=================================
               If dr1.Read Then
                   If MsgBox(" الموظف  تم تسجيلة من قبل و لا يمكن تسجيلة مره اخرى", MsgBoxStyle.Exclamation, "منظومة الدمرداش المدرسية") = MsgBoxResult.Ok Then
                       con.Close()
                       TxtCode.SelectAll()
                       Exit Sub
                   End If
               Else
                   GetEmpInfo()
                   SaveEmpInfATT()
                   Clear()

               End If
               '=======================================
           End If
       End While

       con.Close()
الرد
تم الشكر بواسطة:
#2
احذف كود الحفظ السابق وضع مكانه هذا الكود

ملاحظة : لو تكرر وحفظ البيانات مرتين يبقى مليون % جملة SELECT خطأ 
     

PHP كود :
       Dim dt As New DataTable
        dt
.Clear()
 
       Dim adp As New SqlDataAdapter(" Select EmpCode from EmployeesAttend Where EmpCode = '" TxtCode.Text.Trim "' and AttendsDay='" Label8.Text.Trim "' and AttendsDate = '" Label5.Text.Trim "'"CON)
 
       adp.Fill(dt)
 
       If dt.Rows.Count 0 Then
            MsgBox
("الموظف  تم تسجيلة من قبل و لا يمكن تسجيلة مره اخرى")
 
           Exit Sub
        Else
            GetEmpInfo
()
 
           SaveEmpInfATT()
 
           Clear()
 
       End If 
صلى الله على نبينا محمد
اخيكم / محمود صالح
  قال الزهري رحمه الله  
 مــا عُـــبـِد الله بشئ أفضل من العلم 
الرد
#3
(28-01-18, 11:54 PM)محمود صالح كتب : احذف كود الحفظ السابق وضع مكانه هذا الكود

ملاحظة : لو تكرر وحفظ البيانات مرتين يبقى مليون % جملة SELECT خطأ 
     

PHP كود :
       Dim dt As New DataTable
        dt
.Clear()
 
       Dim adp As New SqlDataAdapter(" Select EmpCode from EmployeesAttend Where EmpCode = '" TxtCode.Text.Trim "' and AttendsDay='" Label8.Text.Trim "' and AttendsDate = '" Label5.Text.Trim "'"CON)
 
       adp.Fill(dt)
 
       If dt.Rows.Count 0 Then
            MsgBox
("الموظف  تم تسجيلة من قبل و لا يمكن تسجيلة مره اخرى")
 
           Exit Sub
        Else
            GetEmpInfo
()
 
           SaveEmpInfATT()
 
           Clear()
 
       End If 
المشكلة والله أعلم فى الداتا ريدير تقريبا بيدور على الداتا ريدير الاول يخلصة ويرجع يدور على الثاني ويخلصة ومع رجوعة مرة اخرى مع حدث textchanged يدور دورة اخرى وهو دا اللي بيعمل مرتين بنفس اللحضة والوقت والبيانات واحد
الرد
تم الشكر بواسطة:



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


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