تقييم الموضوع :
  • 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Exclamation [C#.NET] ما الخطأ هنا عاصم النجار 12 425 26-05-20, 04:35 AM
آخر رد: عاصم النجار
  ماعلة هذا الكود webclient سعود 0 106 24-05-20, 01:15 PM
آخر رد: سعود
Exclamation [سؤال] خطاء في الكود mostafa2110 1 148 27-04-20, 02:28 PM
آخر رد: سعود
  [سؤال] طرب الويندوز ومحتاج اجداد الكود سحاب روابط قائيمة تشغيل من اليتيوب Ali Edal 0 229 11-01-20, 06:18 PM
آخر رد: Ali Edal
Tongue [سؤال] أريد رابط تحميل برنامج كريستال ريبورت الصديق أبوحميده 1 310 10-01-20, 09:42 PM
آخر رد: عبد العزيز البسكري
  ما الخطأ في الكود ؟ ahmedwageh 2 406 05-12-19, 11:57 PM
آخر رد: AmirAliALzalam
  [SQL] ارجو تحويل الكود الى sql safnnn 1 288 24-11-19, 10:02 PM
آخر رد: asemshahen5
  أريد تحويل كود من vb.net الئ C# adel50 6 621 05-10-19, 12:44 PM
آخر رد: adel50
  [C#.NET] مساعدة في التعديل على الكود C# Backup BDD Magma 1 316 23-09-19, 05:29 PM
آخر رد: Magma
  [C#.NET] أرجو من الإخوة الأعضاء مساعدتي في ترجمة هاذا الكود وتحويله من لغة الvb.net إلى#C محمد عبدالكافي المفلحي 1 376 19-07-19, 04:46 PM
آخر رد: ابراهيم ايبو

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


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