منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ترتيب ارقام السجلات بالتسلسل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم

عملت برنامج بقاعدة بيانات اكسس وتم تعريف id بأن مفتاح رئيسي

لكن عند عمل البرنامج وجدت عدم تسلسل ارقام السجلات
السجلات المدخلة 100 وارقام التسلسل وصلت الى 150

ما الحل ؟؟
يرجي التوضيح حتي يمكن المساعده
نــــــــعم . ... يحدث هذا لأنك تقوم بحذف بعض السجلات وبما أن الحقل ترقيم تلقائي لا يتراجع في الترقيم .

الحل :
حـذف الحقل وأعادة أنشــــــــاءه من جديد واعادة الترقيم المتسلسل .

أليـــــــــــك الكود :
PHP كود :
Try
            
'''''' Abu Ehab
            Application
.DoEvents()

            If 
Cn.State ConnectionState.Open Then Cn.Close()
            
Dim ReNomCmd As New OleDb.OleDbCommand

            Cn
.Open()
            
'--------------------------------------------------------------

            With ReNomCmd
                .Connection = Cn
                .CommandText = "ALTER TABLE TB DROP COLUMN ID "
                .ExecuteNonQuery()

                .CommandText = "ALTER TABLE TB ADD COLUMN ID COUNTER "
                .ExecuteNonQuery()

                .CommandText = "ALTER TABLE TB ALTER COLUMN ID Long"
                .ExecuteNonQuery()
            End With

            '
------------------------------------------------------------------
            
Cn.Close()

            
MsgBox("Okey>>>Done")

            
Form1_Load(NothingNothing)

        Catch 
ex As Exception
            MsgBox
(Err.DescriptionErr.Number)
        
End Try 
وفــــــــــقك الله .
اهلا بكم

انا معطل خاصية حذف السجلات لكن عند الاضافه احيانا اتفاجئ بعدم تسلسل رقم السجل الجديد عند الاضافة

هل فيه كود لاعادة ترقيم السجلات مثلا
أخي أبو إيهاب
الكود اللي وضعته عندما يحذف الـ ID من بداية الجداول ، وعند إضافته من جديد هل سيضيفه أعلى الجدول في مكانه السابق أم سيضعه أسفل الجدول
:confused:
هذه الطريقة يأخى الفاضل
Not Recommended
فقد تتسبب فى تخريب العلاقات بين الجداول
السلام عليكم و رحمة الله
أرى أنك تعمل ضغط و اصلاح لفاعدة البيانات بعد كل عملية حذف للسجلات
انا عملت ضغط واصلاح تلقائي عند الخروج من البرنامج

استخدم الاجراء التالي واستغني عن حقل الترقيم التقائي في قاعدة البيانات واجعلة حقل رقم فقط
لان الاجراء التالي يقوم بحساب اكبر قيمة داخل الجدول ويقوم بزيادتها +1


PHP كود :
private Function FindMaxDataTableValue(ByRef dt As DataTable) As Integer
    Dim currentValue 
As IntegermaxValue As Integer
    Dim dv 
As DataView dt.DefaultView
    
For As Integer 0 To dt.Columns.Count 1
        dv
.Sort dt.Columns(c).ColumnName " DESC"
        
currentValue CInt(dv(0).Item(c))
        If 
currentValue maxValue Then maxValue currentValue
    Next
    
Return maxValue
End 
Function 
وهذا كود LNQ


PHP كود :
Dim query From p In db.Products _
            Group p By p
.CategoryID Into g Group _
            Select CategoryID
MaxPrice g.Max(Function(pp.UnitPrice
الصفحات : 1 2