تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
من فضلكم أريد أن أعرف الخطأ الموجود في هذا الكود لانه تعبني جدا ؟!!
#1
Photo 
أقوم بعمل برنامج مدرسي ومن ضمن شاشاته شاشة حضور وانصراف الطلاب كالتالى:


حيت أن المشكلة تكمن في أني عندما أقارن التاريخ واليوم من قاعدة البيانات كما هو موضح اعلاه
1- التاريخ صندوق التاريخ (DayDate)
2- اليوم  صندوق اليوم (DayName)
المشكلة عندما أقارنهم لايعمل الكود الخاص بالمقارنة فانا استعمل الـ datareader  في المقارنة
والكود كالتالي:
كود :
 Try
           '-------------------------الاستعلام عن الحالة او نوع العملية اذا كان خارج الدوام يخرج ولايسجل شئ

           If OperType.Text = "خارج الدوام" Or condition.Text = "خارج الدوام" Then
               'MessageBox.Show("Time cannot be recorded as time is off...!" & vbCr & "لا يمكن تسجيل الدوام فالوقت خارج الدوام", "منظومة الدمرداش المدرسية", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
               StudentBracode.Clear()
               Exit Sub
           Else
               '------------------هنا نستعلم على ان الطالب هذا مسجل ام لا

               Dim dr As SqlDataReader
               SQL = "SELECT * FROM AbsenceRC WHERE MUMTALEEB LIKE '" & StudentBracode.Text & "'"
               con = New SqlConnection(cs)
               con.Open()
               cmd = New SqlCommand(SQL, con)
               dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
               If dr.Read = True Then
                   dat = DayDate.Value.Date.ToString("yyyy-MMM-dd")
                   dan = DayName.Text
                   If dat = dr(8) And dan = dr(9) Then
                       MessageBox.Show("Time Has be recorded for this Student...!" & vbCr & "هذا الطالب مسجل من قبل", "منظومة الدمرداش المدرسية", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)

                       StudentBracode.Clear()
                       ButNew_Click(sender, e)
                       Exit Sub
                   End If
               Else

                   '-------------------------------------هنا نعبئ الحقول بالبيانات من جدول الطلاب
                   con = New SqlConnection(cs)
                   Dim DT_ As New DataTable
                   Dim DA_ As New SqlClient.SqlDataAdapter("SELECT * FROM student WHERE MUMTALEEB LIKE '" & StudentBracode.Text & "'", con)
                   DA_.Fill(DT_)
                   If DT_.Rows.Count > 0 Then
                       Dim DR_ = DT_.Rows(0)
                       SBarcode.Text = DR_!MUMTALEEB
                       SName.Text = DR_!StudentName
                       SIDN.Text = DR_!Sgl
                       EdLevel.Text = DR_!Educationallevel
                       SClass.Text = DR_!section

                   End If
                   '----------------------------------------------
                   If condition.Text = "جاري الحضور" Then
                       SState.Text = "حضور"
                   ElseIf condition.Text = "غياب" Then

                       SState.Text = "غياب"
                   ElseIf condition.Text = "إنصراف" Then

                       SState.Text = "إنصراف"

                   End If


                   '----------------------------------------------------هنا يستعلم عن وجود بيانات في صناديق النصوص ام لا
                   If SBarcode.Text = "" Or SName.Text = "" Or SIDN.Text = "" Or EdLevel.Text = "" Then
                       'MessageBox.Show("Attendees cannot be registered...NO Data!" & vbCr & "لا يمكن تسجيل الدوام لا يوجد بيانات", "منظومة الدمرداش المدرسية", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
                       StudentBracode.Clear()
                       Exit Sub
                   Else
                       con = New SqlConnection(cs)
                       con.Open()
                       Dim cb As String = "insert into AbsenceRC (MUMTALEEB,StudentName,Sgl,Educationallevel,section,Delay,hala,DayName,OpType,Period,condition,DayDate) VALUES (@d1,@d2,@d3,@d4,@d5,@d6,@d7,@d8,@d9,@d10,@d11,@d12)"
                       cmd = New SqlCommand(cb)
                       cmd.Connection = con
                       cmd.Parameters.AddWithValue("@d1", SBarcode.Text)
                       cmd.Parameters.AddWithValue("@d2", SName.Text)
                       cmd.Parameters.AddWithValue("@d3", SIDN.Text)
                       cmd.Parameters.AddWithValue("@d4", EdLevel.Text)
                       cmd.Parameters.AddWithValue("@d5", SClass.Text)
                       cmd.Parameters.AddWithValue("@d6", "0")
                       cmd.Parameters.AddWithValue("@d7", condition.Text)
                       cmd.Parameters.AddWithValue("@d8", DayName.Text)
                       cmd.Parameters.AddWithValue("@d9", OperType.Text)
                       cmd.Parameters.AddWithValue("@d10", txtPeriod.Text)
                       cmd.Parameters.AddWithValue("@d11", condition.Text)
                       cmd.Parameters.AddWithValue("@d12", DayDate.Value)
                       cmd.ExecuteNonQuery()
                       StudentBracode.Clear()
                       ButNew_Click(sender, e)
                       Getdata()
                   End If
               End If
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

       End Try
أفيدوني لان الكود غيرتة حوالي 30 مره بالدتا تايبل والدتا ريدر
الرد }}}
تم الشكر بواسطة: Rabeea Qbaha
#2
تاكد من الصيغة الخاصة بالتارخ عند ارجاعها من قاعدة البيانات ان تكون بنفس الصيغة "yyyy-MMM-dd"

او قم باستحدام المثود الخاصه للمقارنة بين التواريخ :

PHP كود :
// creating object of DateTime 
 
       DateTime date1 = new DateTime(20101 
                                 1
4015); 
 
 
        
// creating object of DateTime 
 
       DateTime date2 = new DateTime(20101
 
                                14014); 
 
 
        
// comparing date1 and date2 
 
       // using Compare() method; 
 
       int value DateTime.Compare(date1date2); 
 
 
        
// checking 
 
       if (value 0
 
           Console.Write("date1 is later than date2. "); 
 
       else if (value 0
 
           Console.Write("date1 is earlier than date2. "); 
 
       else
            Console
.Write("date1 is the same as date2. "); 

الرد }}}
تم الشكر بواسطة: asemshahen5 , elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  هل الكود هذا صحيح خاص بالربط مع قاعدة بيانات SQL server تركي احمد 0 199 15-02-24, 10:04 AM
آخر رد: تركي احمد
  احتاج مساعدة في هذا الكود العتيق 3 590 01-10-23, 10:32 PM
آخر رد: العتيق
  [سؤال] تنظيم الكود الطويل في الاستعلام احمد المهلا 2 780 26-03-23, 12:49 PM
آخر رد: sanyor77
  انشاء قاعدة بيانات عن طرق الكود amonem 3 1,349 07-10-22, 12:51 PM
آخر رد: asemshahen5
Exclamation [VB.NET] عدم تنفيذ الكود في حدث Keydown Bader shaker 1 1,087 06-03-22, 05:40 PM
آخر رد: ابراهيم ايبو
  ممكن المساعدة فى تصحيح الكود talatm 1 1,150 04-03-22, 08:50 PM
آخر رد: talatm
  [سؤال] أتمنى حل مشكلة ظهور هذا الخطأ المتكرر osama623 1 1,242 17-02-22, 10:20 PM
آخر رد: محمود بكرى
  ممكن تحويل الكود من سي شارب لي فيجوال بيسك اليوم السابع 2 1,930 24-02-21, 05:58 PM
آخر رد: الماجيك مسعد
  [C#.NET] اريد تصحيح الخطأ في هذا الكود عاصم النجار 1 1,456 25-10-20, 05:34 AM
آخر رد: عاصم النجار
  [كود] أريد كود خالد بن سالم بهى 2 1,787 28-08-20, 01:04 AM
آخر رد: ba2e44ca9a

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


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