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

نسخة كاملة : كيفية اعادة الترقيم عند الحزف
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
عندي حقل الid حقل بة ارقام من 1 ال 1000 وعند حزف رقم 5 مثلا يبقي فارغا اريد اعادة الترقيم بعد الحزف
السلام عليكم

اذا كان الترقيم تلقائي والزيادة بمقدار واحد فلن تستطيع ارجاع الرقم مرة اخرى

تحياتي
لا
مش ترقيم تلقائي
(21-09-13, 05:28 PM)@@أبورائد@@ كتب : [ -> ]السلام عليكم و رحمة الله و بركاته
يجب عدم الاعتماد جقل ترقيم تلقائي لعرض أرقام تسلسلية لأنه لن يفيد حتى لو لم تقم بحذف أي أسطر
قنفرض أنك استعلمت عن مجموعة بيانات واستخدم فيها Where ستكون النتيجة بالنسبة للرقم التسلسلي مخيبة
يجب على الكل إاعدة النظر في هذه الفكرة الخاطئة.
الرقم التسلسلي إجعله باستخدام الكود فهي الطريقة الصحيحة بالنسبة لـ MSAccess
أما في SQLServer فتوجد خدمة لارفاق حقل مؤقت يحتوي على الرقم التسلسلي يتم به الاستغناء عن برمجته بالكود.
السلام عليكم و رحمة الله و بركاته

انظر المشاركة رقم 4

RolleyesRolleyesRolleyes
(09-02-14, 08:32 PM)السندباد المصري كتب : [ -> ]عندي حقل الid  حقل بة ارقام من 1 ال 1000  وعند حزف رقم 5 مثلا يبقي فارغا  اريد اعادة الترقيم بعد الحزف

اولا لا تستخدم الترقيم التلقائي واستخدم حقل رقمي صحيح
ثانيا : استخدم هذة الدالة لأعادة الترقيم اذا كان الرقم موجود

Dim randomnum As New Random

        For i As Int16 = 0 To (c - 1)
start:
            x = randomnum.Next(0, c)
            If (ListBox1.Items.Contains(x)) Then
                GoTo start
            End If
        Next

        ListBox1.Items.Add(x)

استخدم نفس الفكرة بس غير على الحقل المراد فحصة

ثالثا : استخدم هذة الدالة لجلب رقم جديد ( ترقيم تلقائي )

 public int MaxId (string Table , string field)
         {
             Connection();
             con.Open();
             OleDbCommand cmd = new OleDbCommand("Select MAX(" + field + ")" + " FROM " + Table, con);
             cmd.Connection = con;
             if (cmd.ExecuteScalar() == DBNull.Value)
             {
                 return 1;
             }

             else
             {
                 return int.Parse(cmd.ExecuteScalar().ToString()) + 1;
             }
             
         }