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

بعد حذف جميع صفوف الجدول كيف أجعل الترقيم التلقائي يبدأ من واحد

بدأه hatif في 8 مارس 2008 · 10 رد · 3,261 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

بعد حذف جميع صفوف الجدول كيف أجعل الترقيم التلقائي يبدأ من واحد يعني يبدأ الترقيم التلقائي من جديد

وشكرا لكم

#2

وعليكم السلام

اكتب في الـ DataGridView في حدث الـ RowsRemoved التالي

DataGridView1.RowsRemoved

استدعاء اجراء الترقيم ()

او

إضغط هنا

تم تعديل هذه المشاركة بواسطة Yemen VB6 في 8 مارس 2008 في 21:38

رُب ( وامعتصماه ) إنطلقت *** ملْء أفـواه الصبايا اليُتـم

لامـسـت أسْـماعـهـم لاكـنهـا *** لمْ تلامس نخْوة المعتصم

#3

أخي الفاضل Yemen VB6 شكرا لك على المساعدة وسرعة الرد

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

وشكرا لك مرة أخرى

#4

أخى الكريم أعتقد إنه يقصد

الترقيم التلقائى للجدول فى قاعدة البيانات

وحقيقى دورت كتير فى الموضوع ده ومش لاقى رد

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

انا تحايلت على تلك المشكله بحذف العمود الذى يحتوى على الترقيم التلقائى وإنشاء واحد جديد ليبدأ من الصفر

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

Oracle Developer

#5

السلام عليكم

لقد حللت المشكلة والحمد لله ولكن بطريقة ملتوية إلا أنها نافعة وهي أني عملت عمود جديد يكون الترقيم فيه يدوي ويكون عمود الترقيم التلقائي أيضا موجود وبعد حذف كافة السجلات فإنه عند أول عملية إضافة أعمل استعلام يبحث عن أصغر قيمة في عمود الترقيم التلقائي وبناء عليها أعمل تحديث للعمود الجديد بجعل قيمته يساوي 1 وهكذا ويكون عمود الترقيم التلقائي هو الفهرس أما العمود الجديد فيكون هو الفهرس الحقيقي وليس الأول يعني هو الذي أبحث عن طريقه واستعلم عن طريقه .

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

والسلام

#6

احذف الجدول وقم بانشائه من جديد

#7

طيب هل يوجد طريفة ولو من الأكسس نفسه؟؟؟؟؟؟؟؟؟؟

#8

بعد حذف البيانات أعمل ضغط وإصلاح لقاعدة البيانات (Compact and Repair Database) من قاعدة بيانات أكسيس وسوف يعيد الترقيم من 1

لا زلت أبحث عن أمر ضغط وإصلاح قاعدة البيانات بواسطة الكود من نفس الفيجول

#9

السلام عليكم

رجربتها سابقا في الدلفي حيث عملت تغيير لنوع الحقل الى string ثم اعدته الى auto ودلك بواسطه الكود ونجحه معي الفكرة

#10

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

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

أما أذا أردت أن تجعله عن طريق الكود , هذا هو الكود إن شاء الله سيفيدك , وأنا قد جربته في برامجي و هو شغال معي فما عليك الأ أن تبدل أوامره من ال أس كيو أل سيرفر الى أوامر أكسس .

 using (SqlConnection mycon = new SqlConnection(clsCon.conn))
            {
                try
                {
                    mycon.Open();
                    string q2 = "SELECT max(IDmoayd) FROM TabMoayd";
                    using (SqlCommand comm = new SqlCommand(q2, mycon))
                    {
                        int xx = (int)comm.ExecuteScalar() + 1;
                        label1.Text = xx.ToString();
                    }
                }
                catch (SqlException jhg)
                {
                    MessageBox.Show(jhg.Message.ToString());
                }
                catch (Exception eh)
                {

                    label1.Text = "1";
                }
                finally
                {
                    mycon.Close();
                }

   }

يجب أن تضعه في حدث التحميل لنافذذ الأضافة و في حدث مفتاح الأدخال أو الحفظ بحيث عند الضغط على المفتاح يزيد لك تسلسل الأرقام

#11
hatif كتب:

السلام عليكم

بعد حذف جميع صفوف الجدول كيف أجعل الترقيم التلقائي يبدأ من واحد يعني يبدأ الترقيم التلقائي من جديد

وشكرا لكم

استعمل الاتي

Imports System.Data.OleDb
Public Class access
	Dim con As New OleDbConnection(connection_string)
	Dim cmd As New OleDbCommand("",con)
Private Sub Button1_Click( ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles Button1.Click

	con.Open

	Remove_PK("table1","PrimaryKey") 		' Remove the index name of the autoinc field
	Drop_Column("table1","id") 				' remove the autoinc field from the table	
	Add_Column_AutoInc("table1","ID")		' Add autoinc field again to the table
	Set_Column_PK("table1","ID","PrimaryKey")	' Add the index name for the autoinc

End Sub

	Function Remove_PK(ByVal Table As string,PrimaryKeyIndexName As String) As Boolean
    	Dim Sql = "ALTER TABLE <table> DROP CONSTRAINT <PrimaryKeyIndexName>"
        	Sql = Sql.Replace("<table>",Table).Replace("<PrimaryKeyIndexName>",PrimaryKeyIndexName)
        	cmd.CommandText = Sql
        	Return cmd.ExecuteNonQuery = 0
	End Function

	Function Drop_Column(ByVal Table As String,Column As String) As Boolean
    	Dim Sql = "ALTER TABLE <table> DROP COLUMN <Column>"
        	Sql = sql.Replace("<table>",Table).Replace("<Column>",Column)
        	cmd.CommandText = Sql
    	Return cmd.ExecuteNonQuery = 0
	End Function

	Function Add_Column_AutoInc(Table As String,Column As String) As Boolean
    	Dim Sql = "ALTER TABLE <table> ADD COLUMN <column> AUTOINCREMENT"
        	Sql = Sql.Replace("<table>",Table).Replace("<column>",Column)
        	cmd.CommandText = Sql
        	Return cmd.ExecuteNonQuery = 0
	End Function

	Function Set_Column_PK(ByVal Table As String,Column As String ,IndexName As String) As Boolean
    	Dim Sql = "ALTER TABLE <table> ADD CONSTRAINT <PrimaryKeyIndexName> PRIMARY KEY  (<column>)"
        	Sql = Sql.Replace("<table>",Table).Replace("<PrimaryKeyIndexName>",IndexName).Replace("<column>",Column)
        	cmd.CommandText = Sql
        	Return cmd.ExecuteNonQuery = 0
	End Function
End Class

تم تعديل هذه المشاركة بواسطة سمير ابراهيم في 9 مايو 2011 في 18:03

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

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

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

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

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