تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] اريد الحقل يبدا برقم تسلسلي حسب السنة الهجرية
#5

السلام عليكم ورحمة الله

شوف أخوي العزابي

هذا مثال مجمع من عدة مشاريع لأحد الأخوة الله يذكره بالخير علشان نوصل للهدف من الفكرة

مشكلة قاعدة البيانات ما تتعامل مع التاريخ الهجري مباشرة حتى لو ظهر لك تاريخ هجري فهذا نتيجة التحويل
ولو استعلمت عن السنة في جملة الاستعلام مثل "(()SELECT YEAR(NOW" راح يعطيك السنة الميلادية

سوي مشروع جديد وحط فيه داتاجريد وزر ومربع نص
وبالنسبة لقاعدة البيانات
سوي جدول باسم table1 وفيه ثلاث حقول واحد نصي Name واثنين أرقام عادية اسمهم HijriYear والثاني HijriID

وقول باسم الله وشغل المشروع، وإن شاء يكون ما تريد،
PHP كود :
Imports System.Data.OleDb

Public Class Form1

    Dim conn 
As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = Database1.accdb;")

    Private 
Sub Form1_Load(sender As System.ObjectAs System.EventArgsHandles MyBase.Load
        
' قراءة قاعدة البيانات '
        
ReadDatabase()

    
End Sub


    
' قراءة قاعدة البيانات '
    
Private Sub ReadDatabase()
        
Using da As New OleDbDataAdapter("SELECT * FROM [table1] "conn)
            
Using myDatatable As New DataTable
                da
.Fill(myDatatable)
                
Me.DataGridView1.DataSource myDatatable
            End Using
        End Using
    End Sub


    
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
        
Try
            
' الحقل HijriYear هو فقط لمعرفة الرقم التسلسلي المفترض وضعه '
            ' الحقل HijriID هو من نوع رقم عادي وليس ترقيم تلقائي لأن الترقيم يتم برمجياً '

            ' معرفة السنة الهجرية الحالية حسب التقويم الهجري نظام الويندوز '
            
Dim nowHijriYear As Integer = New System.Globalization.HijriCalendar().GetYear(Now)
            
' معرفة السنة الهجرية الحالية حسب تقويم أم القرى في نظام الويندوز '
            ''
Dim nowHijriYear As Integer = New System.Globalization.UmAlQuraCalendar().GetYear(Now)

            
' معرفة أكبر رقم مسجل للسنة الحالية '
            
Dim maxHijriID As Integer GetMaxHijriID(nowHijriYear)

            If 
maxHijriID <> -1 Then
                conn
.Open()

                
'========== إضافة البيانات =========='
                
Using comm As New OleDbCommand(" INSERT INTO [table1] ([Name], [HijriYear], [HijriID] ) VALUES (@Name, @HijriYear, @HijriID) "conn)
                    
comm.Parameters.AddWithValue("@Name"Me.TextBox1.Text)
                    
comm.Parameters.AddWithValue("@HijriYear"nowHijriYear)
                    
comm.Parameters.AddWithValue("@HijriID"maxHijriID 1' نضيف واحد '
                    
comm.ExecuteNonQuery()
                
End Using

                conn
.Close()

                
' قراءة قاعدة البيانات '
                
ReadDatabase()
            
End If

        Catch 
ex As Exception
            MsgBox
(ex.Message)
        
End Try
    
End Sub


    
'========== دالة لمعرفة أكبر رقم مسجل للسنة المحددة =========='
    
Private Function GetMaxHijriID(hijriYear As Integer) As Integer
        
Try

            
conn.Open()

            
'========== معرفة أكبر رقم مسجل للسنة الحالية =========='
            ' متغير من نوع أوبجكت تحسباً لرجوع قيمة فارغة '
            
Dim maxHijriID As Object
            Using comm 
As New OleDbCommand(" SELECT MAX([HijriID]) FROM [table1] WHERE [HijriYear] = @HijriYear "conn)
                
comm.Parameters.AddWithValue("@HijriYear"hijriYear)
                
maxHijriID comm.ExecuteScalar
            End Using
            
' في حالة القيمة الفارغة يتم تحويلها إلى رقم صفر '
            
maxHijriID IIf(maxHijriID.GetType Is GetType(System.DBNull), 0maxHijriID)

            
conn.Close()

            Return 
maxHijriID

        
Catch ex As Exception
            MsgBox
(ex.Message)
            Return -
1
        End 
Try
    
End Function


End Class 


أضفت السطر التالي لتقويم أم القرى، قم بتفعيله مع تعطيل السابق إن أردت
PHP كود :
' معرفة السنة الهجرية الحالية حسب تقويم أم القرى في نظام الويندوز '
''
Dim nowHijriYear As Integer = New System.Globalization.UmAlQuraCalendar().GetYear(Now

الرد }}}
تم الشكر بواسطة: العزابي


الردود في هذا الموضوع
RE: اريد الحقل يبدا برقم تسلسلي حسب السنة الهجرية - بواسطة الوليد ☺ - 06-11-14, 08:40 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] اريد طباعة تقرير ريبورت فيو مباشرة فور عرض التقرير mh66 1 561 22-03-25, 09:59 AM
آخر رد: mh66
  اريد كود لو سمحتم خالد كامل1 10 1,224 15-02-25, 02:15 PM
آخر رد: خالد كامل1
  اريد كود معين اثابكم الله خالد كامل1 1 456 04-02-25, 09:28 PM
آخر رد: aliday03
  اريد كود يحذف جميع سجلات جدول بقاعدة بيانات اكسس دفعه واحده khalidalwdi 2 640 18-11-24, 01:02 AM
آخر رد: rdxdz
  اريد جلب عدد محدد من السجلات من قاعدة بيانات اكسس الى الداتا قراد فيو يوجد مثال khalidalwdi 2 669 12-11-24, 12:19 PM
آخر رد: khalidalwdi
  [نقاش] اريد مسااعدة انا مبتدئة ف بحر غارق?? ..N 1 348 29-09-24, 11:16 PM
آخر رد: justforit
Exclamation [VB.NET] اريد كود لتصدير البيانات من DataGridView الى ملف Excel zazasami 1 498 04-08-24, 09:15 PM
آخر رد: mrfenix93
  اريد إحصاء مجموع التأخير والغياب للموظف أبووسم 2 449 31-07-24, 02:16 PM
آخر رد: أبووسم
  اريد طباعة الباركود من غير ظهور نافذة المعاينة new_programer 1 532 23-05-24, 03:55 AM
آخر رد: new_programer
  اريد اضافة حفظ PDF فى مسار على الهارد- مثال الاستاذ عبدالله الدوسري new_programer 1 520 28-04-24, 04:52 PM
آخر رد: new_programer

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


يقوم بقرائة الموضوع: