بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
عندى مشكلة فى كود الترقيم التلقائى
حيث إنى عندما اقوم باستعادة الترقيم التلقائى لحقل ID يظهر الخطأ فى الصورة
وهذا هو الكود المستحدم فى عمل استعادة الترقيم
كود :
If SQLBindingSource1.Count = 0 Then Beep() : Exit Sub
Application.DoEvents()
Dim cmd As New SqlCommand("", con)
con.Open()
'ID كود حذف المفتاح من حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE Tab1 DROP CONSTRAINT PrimaryKey"
cmd.ExecuteNonQuery()
' ID كود حذف حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE Tab1 DROP COLUMN ID "
cmd.ExecuteNonQuery()
'مع وضع مفتاح له ID كود انشاء حقل الترقيم التلقائي الي اسمه
cmd.CommandText = "ALTER TABLE Tab1 ADD COLUMN ID COUNTER CONSTRAINT [PrimaryKey] Primary key "
cmd.ExecuteNonQuery()
'تغيير نوعية الحقل من ترقيم تلقائي الى رقم
cmd.CommandText = "ALTER TABLE Tab1 ALTER COLUMN ID Long"
cmd.ExecuteNonQuery()
con.Close()
'تحديث قاعدة البيانات
SQLDataSet1.Clear()
SQLDataAdapter1.Fill(SQLDataSet1, "Tab1")
DataGridView1.AllowUserToAddRows = False
MsgBox("تم بنجاح استعادة تسلسل السجلات", "نجاح")
ولكم جزيل الشكر مقدماً
السلام عليكم ورحمة الله وبركاته
ليس لي تجربة سابقة مع اعادة الترقيم التلقائي وحذف المفتاح
ولكن اعتقد والله اعلم ومن بعده انت اخي الكريم
ان كان المفتاح مرتبظ بمفتاح فرعي لجدول أخر فيفترض اولا ازالة العلاقة وفكها بين الجدولين ثم عمل حذف المفتاح و اعادة الترقيم
لان اعادة الترقيم من شأنه افساد السجلات من الجدول المرتبظ بالجدول المراد اعادة الترقيم له وهذه العملية ممنوعة ان لم نزيل العلاقة
شيئ اخر استبدل كلمة PrimaryKey باسم الحقل الذي هو يحمل المفتاح الرئيسي
(17-04-20, 07:06 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم ورحمة الله وبركاته
ليس لي تجربة سابقة مع اعادة الترقيم التلقائي وحذف المفتاح
ولكن اعتقد والله اعلم ومن بعده انت اخي الكريم
ان كان المفتاح مرتبظ بمفتاح فرعي لجدول أخر فيفترض اولا ازالة العلاقة وفكها بين الجدولين ثم عمل حذف المفتاح و اعادة الترقيم
لان اعادة الترقيم من شأنه افساد السجلات من الجدول المرتبظ بالجدول المراد اعادة الترقيم له وهذه العملية ممنوعة ان لم نزيل العلاقة
شيئ اخر استبدل كلمة PrimaryKey باسم الحقل الذي هو يحمل المفتاح الرئيسي
شكرا لك أخى إبراهيم على تفاعلك معى ومحاولة مساعدتى
بالنسبة للمفتاح فهو غير مرتبط بمفتاح فرعى لجدول آخر
بالنسبة لاستبدال كلمة PrimaryKey باسم الحقل الذى يحمل المفتاح الرئيسى
فقد ظهرت نفس سالة الخطأ
شخصيا" لا افضل حذف اي مفتاح اساسي من جدول او اعادة ترقيمه
اذا ما هو الهدف من المفتاح الاساسي للجدول اذا كنت ساقوم بالتغيير عليه
(17-04-20, 09:56 PM)aljzazy كتب : [ -> ]شخصيا" لا افضل حذف اي مفتاح اساسي من جدول او اعادة ترقيمه
اذا ما هو الهدف من المفتاح الاساسي للجدول اذا كنت ساقوم بالتغيير عليه
الهدف هو إعادة تسلسل الأرقام للبيانات عند ظهورها فى dataGridview بعد حذف أحد السجلات
إلى جانب محاولة فهم سبب ظهور الرسالة وحل المشكلة
السلام عليكم ورحمة الله وبركاته
لدي اقتراح
اذهب الى الـ SQLServer وقم بحذف المفتاح بنفسك وارجع الى كودك مع الغاء حذف المفتاح ونفذ ماتبقى من الكود
حتى تفهم اين المشكلة
(17-04-20, 10:59 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم ورحمة الله وبركاته
لدي اقتراح
اذهب الى الـ SQLServer وقم بحذف المفتاح بنفسك وارجع الى كودك مع الغاء حذف المفتاح ونفذ ماتبقى من الكود
حتى تفهم اين المشكلة
قمت بتنفيذ اقتراحك حيث يتم بالفعل حذف حقل الـ ID
ولكن الكود لا يستطيع انشاء حقل ID مرة أخرى وتظهر الرسالة ولم افهم ما السبب
اخي الفاضل :
وجود كلمة COLUMN في جملة اضافة الحقل يعتبر خطأ .... ولا تنسى توصيف نوع الحقل المراد اضافته
(19-04-20, 01:37 AM)boudyonline كتب : [ -> ]اخي الفاضل :
وجود كلمة COLUMN في جملة اضافة الحقل يعتبر خطأ .... ولا تنسى توصيف نوع الحقل المراد اضافته
اخى الفاضل الكود يعمل بشكل صحيح فى حالة كانت قاعدة البيانات أكسس
ولكن عندما تكون قاعدة البيانات SQL يظهر الخطأ الظاهر فى الصورة
(19-04-20, 02:20 AM)asemshahen5 كتب : [ -> ]شرح عمل مايكرو او مفتاح يقوم بتصحيح المسلسل فى حقل الترقيم التلقائى بدون اكواد
أخى الفاضل قاعدة البيانات التى اعمل عليها الآن SQL مرتبطة بمشروع على VB.net
الكود السابق عند تحويله للعمل على قاعدة بيانات Access يعمل بكفاءة وعند تحويله للعمل على قاعدة البيانات الـ SQL يظهر الخطأ الظاهر فى الصورة