الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد عمل تسلسل ارقام لقاعدة البيانات اكسس فيvb.net

مغلق
بدأه NO BODY CAN BEAT ME في 5 أكتوبر 2005 · 26 رد · 2,234 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي قاعدة بيانات id,name,phone الid معمول(AutoNumber) يوجد في القاعدة على سبيل المثال 3 سجلات للموظفين

1.رامي

2.وليد

3.صلاح

اريد عند حذف السجل الاول (رامي) ان ياخذ السجل الثاني (وليد)مكانه والسجل الثالث مكان الثاني

عند حذف رامي يصيرو هكذا:

1.وليد

2.صلاح

في البرنامج الي انا عامله يصيرو هكذا

2.وليد

3.صلاح

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

4.محمد

افيدوني افادكم الله

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#2

أخي الكريم، للمسألة حلول كثيرة جداً ويعتمد كل واحد على الصورة التي تريد بها التعامل مع ذلك الرقم. أولاً ابعد عن عمود ال AutoNumber ولا تعتبره موجوداً في جدولك فذلك العمود عادة نستخدمه ك Primary key.

ما هي حاجتك لذلك الرقم؟ إن كنت أن تريد فقط أن تظهره مثلاً في Label على برنامجك عندما تنشيء ال DataSet فأنت لا تحتاج لتخزينه في قاعدة البيانات، فقط قم بأخذ رقم ال row في الداتاسيت (وأضف عليه رقم واحد لأن الداتاسيت تبدأ من الصفر كما تعلم)، فمثلاً لو كان إسم "وليد" هو الرقم 2 في الداتاسيت التي قمت بإنشائها فإنك تضع في ال Label رقم ال Row الذي فيه إسم "وليد" وأضف إليه واحد.

أما إذا أردت أن تحفظ ذلك الرقم في قاعدة البيانات فيجب عليك أن تقوم بتغيير ذلك الرقم في كامل الصفوف، وهذا سهل، قم بإنشاء عمود من نوع integer لتخزين ذلك الرقم، وعندما تقوم مثلاً بحذف عمود من الداتاسيت يجب ان تقوم بتغيير رقم ذلك العمود بشكل متسلسل (رقم ال row + 1) وبعد ذلك تقوم بعمل حفظ التغييرات إلى قاعدة البيانات.

أرجو بأن تكون الفكرة قد وصلتك، وللأسف لا يوجد الفيجوال بيسك على جهازي الآن (موجود على D وأنا أعمل على C الآن) وإلا قمت بعمل مثال بسيط يبين لحضرتك كيفية القيام بذلك.

Learn Japanese :>>> http://www.nouben.com/

#3

اخي انا اريد كيفية عملها باوامر ال sql وارسالها الى اكسس

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#4

انا احتاج ذللك الرقم لعملية البحث فقط

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#5

اخي الكريم افترض انك مسحت الحقل بالأمر

delete from tblName where id = 1

طبعا يجب ان يكون الحق الذي به الارقام معرف على انه رقم او نص على أقل تقدير ولو انها خطأ منطقيا

الان قم بعد الأمر هذا بإعادة ترقيم الجدول مرة اخرى

 Dim conn = New OleDb.OleDbConnection ' your connection
        Dim sql As String = "select id from tblName"
        Dim cmd As New OleDb.OleDbCommand(sql, conn)
        Dim dr As OleDb.OleDbDataReader
        Dim i As Integer = 1
        While dr.Read
            Dim cmd2 As New OleDb.OleDbCommand("update tblName set id = " & i & "", conn)
            i += 1
        End While
        conn.close()

لم أجرب الكود ولكن اتمنى ان تكون الفكرة واضحة

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#6

Romantic_touch ..... هل سيعمل هذا الكود بما ان الـ id معرف كـ AutoNumber ؟؟؟ :unsure:

و بجانب حل هارون و هو حل مباشر جداً الا ان هناك طريقة أخرى غير مباشرة...

عندما تقوم بعملية الـ Compact and Repair لقاعدة البيانات عن طريق الأكسس تقوم هذه العملية بتعديل تسلسل أرقام الـ AutoNumber فيصبح تسلسلها صحيح... يمكنك فعل ذلك بطريقة برمجية.... اليك هذا المثال:

موضوع # 74338

رأس الحكمة الإيمان بالله

#7

اخي هل من الممكن تعطيني الكود على فكرة الاخ هارون؟؟؟ لاني بصراحة مبتدء ado.net

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#8
NO BODY CAN BEAT ME كتب:
اخي هل من الممكن تعطيني الكود

يا أخي الفاضل حاول بنفسك ... و نصيحة لا تطلب كوداً جاهزاً... فوالله لن تتعلم هكذا أبداً..

رأس الحكمة الإيمان بالله

#9
اقتباس
لاني بصراحة مبتدء ado.net

اخي ولله انا ما بعرف كيف اجيب رقم الصف يعني مساعدة بسيطة وانا اكمل ان شاء الله

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#10

اخي انا حاولت و شوف الكود اذا

       Dim n As New OleDbCommand
        Dim r As OleDbDataReader
        n.Connection = OleDbConnection1
        n.CommandText = "select  id from waleed"
        OleDbConnection1.Open()
        OleDbConnection2.Open()
        r = n.ExecuteReader()


        Do While r.Read()
            Dim i As Integer = 0
            i = i + 1
            Dim w As New OleDbCommand
            w.Connection = OleDbConnection2
            w.CommandText = "update waleed set id = " & i
            w.ExecuteNonQuery()
        Loop

        OleDbConnection2.Close()
        r.Close()
        OleDbConnection1.Close()

بس صارت كل الارقام 1 شو الخطء؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة NO BODY CAN BEAT ME في 7 أكتوبر 2005 في 16:23

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#11
اقتباس
عندما تقوم بعملية الـ Compact and Repair لقاعدة البيانات عن طريق الأكسس تقوم هذه العملية بتعديل تسلسل أرقام الـ AutoNumber فيصبح تسلسلها صحيح

أعتقد أخي محمد بأن ال AutoNumber لن يتأثر بعملية الإصلاح تلك للأسف، العملية تحذف الصفوف المحذوفة غيرها من التغييرات ولكن ال AutoNumber تصبح قيمتة مرتبطة بال row، هناك طريقة للقيام بذلك وتتم عن طريق عمل جدول مطابق في هيكله للجدول الذي نريد إصلاحه ومن ثم نسخ المعلومات كاملة إلى الجدول الجديد، بهذه الطريقة تصبح ال AutoNumber متسلسلة، هذه الطريقة التي إكتشفتها ولا أعلم إن كان هناك طرق أسهل).

أخي Nobody :( ، نحن نحملك أكثر من طاقتك عندما نطلب منك أن تحاول أن تقوم بذلك بنفسك، ها هو البرنامج كما تريده، قم أولاً بتحديد (إختيار) صف من الداتاغريد الموجودة على الفورم وأضغط على الزر وستكون الامور كما تشتهي بإذن الله.

beat_him.zip

Learn Japanese :>>> http://www.nouben.com/

#12

شكرا لك اخي لكن بصراحة :( لم افهم شيء هل من الممكن ان تشرح؟؟؟؟

وهل هناك طريقة لعملها عن طريق الSQL لاني افهمها اكثر

اخي Nobody ، نحن نحملك أكثر من طاقتك عندما نطلب منك أن تحاول أن تقوم بذلك بنفسك،

اخي ولله اني مبتدء في هذا المجال

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#13

لا لن أشرح، أتعلم لماذا؟ لأنك تريد كوداً وأعطيناك إياه (أتذكر عندما أردت إنشاء مكتبة أكواد ونصحتك بأن هذه الأمور لا تجدي نفعاً؟، أتذكر ردّك؟)، وكما قال أستاذنا محمد عبدالعليم، الأكواد لن تفيدك وإن بقيت على حالك هذه فتأكد بأنك لن تتعلم البرمجة طوال عمرك.

you’ve got to be cruel to be kind

Learn Japanese :>>> http://www.nouben.com/

#14

اخي نعم اذكر ردك وانك قلت ان الكود لا ينفع من دون (شرح) كيف بدك اياني افهم من دون شرح؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

اذا كنت لا تريد الشرح فشكرا لك وسامحك الله

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#15

وبعدين يا اخي انا قلت لك في مكتبة الاكواد معظم الاكواد مشروحة وانا مستعد انو نعمل موضوع و نشوف كم واحد استفاد و كم واحد لم يستفد واذا كان عدد الغير مستفيدين اكثر سوف اقدم لك اعتذار في موضوع مثبت لو يسمح المشرفين

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#16

ساعدون لقد قمت بكتابة الكود الذي اعطاني اياه Romantic_touch ولكنه يقوم بجعل جميع الحقول بنفس الرقم وحاولت التغير عليه لكن من دون فائده

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#17

اسف على التأخير حبيبي بس معليش بالفعل فيه مشكلة في الكود تبعي وهي في السطر التالي

Dim cmd2 As New OleDb.OleDbCommand("update tblName set id = " & i & "", conn)

والتعديل هوا

Dim cmd2 As New OleDb.OleDbCommand("update tblName set id = " & i & " where id = "& dr("id") &"", conn)

حاول اخي الكريم لاني بصراحة لم أجرب الكود ولكن هذا هو الحل إن شاء الله

اما بالنسبة لسؤالط في احد الردود لماذا الكود يعطي رقم واحد لكل الحقول هو انك قمت بتعريف

dim i as integer = 0

في داخل جملة while وبالتالي في كل مرة سوف يعيد تصفير قيمة المتغير i

بالتوفيق اخي

الآخوان الكريم صحيح ان المحاولات واخذ الكود الجاهز شي سيء ولكن الأفضل هو ان تشرح عمل الكود وعلى المتعلم ان يحاول فهم الكود وليس نسخ ولصق

بارك الله في الجميع

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#18

يا اخي نفس المشكلة جميع الحقول تاخذ نفس الرقم حتى بعد ازالة i=0 من الجملة while :(

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#19

برضه انت وقعت في نفس الخطأ الي انا وقعت فيه وهو جملة where في جمةل update والتعديل هو

Dim n As New OleDbCommand       Dim r As OleDbDataReader
       n.Connection = OleDbConnection1
       n.CommandText = "select  id from waleed"
       OleDbConnection1.Open()
       OleDbConnection2.Open()
       r = n.ExecuteReader()
Dim i As Integer = 0   ' this is your first error
       Do While r.Read()
           i = i + 1
           Dim w As New OleDbCommand
           w.Connection = OleDbConnection2
           w.CommandText = "update waleed set id = " & i &" where id = "& dr.item(0) &"  ' there is your second error 
           w.ExecuteNonQuery()
       Loop
       OleDbConnection2.Close()
       r.Close()
       OleDbConnection1.Close()
[code]

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#20

اخي مشكلة تقوم باعطاء ارقام عشوائية للحقول:(

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#21

اخوي اجعل نوع الحقل حق الأرقام اللي تبغى تعدل فيها هو integer وليس autonumber واذا مازبطت ارسل الملف وانا ازبطه لك :)

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#22

اخي هذا هو الملف كله تحت تصرفك لكن بعد الاصلاح اشرح لي خليني افهم :)

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#23

ليه كدا بس يا استاذ NO BODY CAN BEAT ME

يعني الاردنيين حبايبي انا درست بالاردن 5 سنين واهلها مررررررررة طيبين بس ليه بترسل ملف فيه فايروس

حبيبي نزلت الملف طلع فيه فايروس

فما نزل عندي :(

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#24

له له له له

ولله زعلتني اخي Romantic_touch ولله انتو الطيبين انا اسف على هذا الخطء لكن والله انو شغال 100% عندي ومافي اي فايروس يمكن لاني مش منزل الانتي فيروس على العموم انت في اي جامعة درست؟؟؟؟؟؟ ولله اخي لو بتعملي المثال وترسلو الي بتكون عملت خير :)

اكرر الاسف (اسف*100000000000000000000000000000000000000000000000000000000000000000000000) :)

تعلم:كيف تشغل برنامجك (قبل) ما يشتغل ال explorer, مثل ال check desk في الوندوز 98 و me

اللهم عطر يومنا بالايمان وانر قلبنا بالقرآن ورزقنا من حيث لانحتسب واجعل لنا سكينة تطمئن بها روحنا واحفظنا من كل سوء اللهم بارك لنا في رجب وشعبان وبلغنا رمضان آمين يارب العالمين

ranneh.com

#25

الك يازلمة تكرم عينك

هيووه الكود

انا كنت بجامعة عمان الاهلية وما تسألني اشي تاني لاني لما بتذكر ايام الاردن زي الي فقد ولده وتذكره

بالتوفيق يامعلم

datatable.zip

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…