اريد كود ادراج ارقام الجلوس في جدول الطلاب البالغ عددهم 250 طالب في قاعدة بيانات يبداء برقم محدد
اسم الجدول : student
حقل الرقم : stu_id
حقل الاسم: stu_nam
حقل رقم الجلوس :glose
ياريت اجابه مستعجله
السلام عليكم و رحمة الله و بركاته
أخي الكريم
أي كود حفظ بأي ملف مفتوح بقسم الأمثلة سوف يفي بالغرض إن شاء الله
تحياتي
(27-10-21, 02:06 AM)عبد العزيز البسكري كتب : [ -> ]السلام عليكم و رحمة الله و بركاته
أخي الكريم
أي كود حفظ بأي ملف مفتوح بقسم الأمثلة سوف يفي بالغرض إن شاء الله
تحياتي
كود الحفظ واضح عندي
لكن المطلوب هو كيف انشاء وادراج ارقام الجلوس مرة واحدة لكل الطلاب بارقام متسلسلة يبدء من اول طالب برقم ١٠ كمثال الى ٠٠٠٠ اخر طالب في الجدول
خذها مني كنصيحة
أشتغل بالتعليم منذ أكثر من 25 سنة
عمرك و لا تعمل أرقام الجلوس تلقائيا بالكود يجب كتابتها يدويا
هذا رقم جلوس يعني رقم تسجيل .. و أثناء التصحيح أو بما يسمى عملية الإغفال يتم حذف كل البيانات الخاصة بالمترشح و يحتفظون فقط برقم الجلوس و على أساسه يتم القبول أو الرسوب
المركز الواحد صحيح يبدأ برقم معين و يتم تسلسل باقي المترشحين على أساس الرقم الأولاني
لكن ببعض الأحيان و ببعض الحالات كانسحاب مترشح أو حتى وفاته يتم تخطي الترقيم التسلسلي لهذا المترشح
إذن طريقة كيف ستكون ؟
الكود سيكون كالتالي :
إذا كان جدول المترشحين فارغا من البيانات .. أكتب رقم التسجيل الأول المسجل لديك و الباقي مثلما ذكرت لك يدويا أو بإضافة + 1 لرقم التسجيل الأول مع التفكير بما ذكرته لك من مخاطرة بمستقبل الكثيرين
تحياتي
(27-10-21, 01:11 PM)عبد العزيز البسكري كتب : [ -> ]خذها مني كنصيحة
أشتغل بالتعليم منذ أكثر من 25 سنة
عمرك و لا تعمل أرقام الجلوس تلقائيا بالكود يجب كتابتها يدويا
هذا رقم جلوس يعني رقم تسجيل .. و أثناء التصحيح أو بما يسمى عملية الإغفال يتم حذف كل البيانات الخاصة بالمترشح و يحتفظون فقط برقم الجلوس و على أساسه يتم القبول أو الرسوب
المركز الواحد صحيح يبدأ برقم معين و يتم تسلسل باقي المترشحين على أساس الرقم الأولاني
لكن ببعض الأحيان و ببعض الحالات كانسحاب مترشح أو حتى وفاته يتم تخطي الترقيم التسلسلي لهذا المترشح
إذن طريقة كيف ستكون ؟
الكود سيكون كالتالي :
إذا كان جدول المترشحين فارغا من البيانات .. أكتب رقم التسجيل الأول المسجل لديك و الباقي مثلما ذكرت لك يدويا أو بإضافة + 1 لرقم التسجيل الأول مع التفكير بما ذكرته لك من مخاطرة بمستقبل الكثيرين
تحياتي
اشكرك اخي عبدالعزيز على النصيحة الهامة
هذا الكود احتاجة بصورة او باخرى لادراج ارقام الجلوس اليا وليس يدويا
انا سويت دالة وتنفيذ للدالة لكن المشكلة ان التنفيذ ياخذ وقت اطول من اللازم اذا كان عدد الطلاب اكثر من مائة طالب وكلما زاد اعداد الطلاب كلما تاخر اكثر
وهذ
Function
و
إقتباس :PHP كود :
Function get_record(TableName, orderbyfield) As Integer
get_record = 0
Dim STR = "select * from " & TableName & " order by " & orderbyfield
Dim ADP = New SqlClient.SqlDataAdapter(STR, sqlconn)
Dim DS = New DataSet
ADP.Fill(DS)
Dim DT As DataTable
DT = DS.Tables(0)
If DT.Rows.Count <> 0 Then
Dim i = DT.Rows.Count - 1
get_record = Val(DT.Rows(i).Item(orderbyfield))
End If
End Function
وهذ كود التنفيذ
PHP كود :
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim adp As New SqlClient.SqlDataAdapter("Select * from student", sqlconn)
Dim cmds As New SqlClient.SqlCommand("", sqlconn)
Dim dt As New DataTable
adp.Fill(dt)
For i = 0 To dt.Rows.Count - 1
cmds.CommandText = "UPDATE student set glose=" & get_record("student", "glose") + 1 & " where stu_id =" & i & " "
If sqlconn.State = 1 Then sqlconn.Close()
sqlconn.Open()
cmds.ExecuteNonQuery()
sqlconn.Close()
Next
MsgBox("تمت العملية")
End Sub
(27-10-21, 06:48 PM)malik98 كتب : [ -> ] (27-10-21, 01:11 PM)عبد العزيز البسكري كتب : [ -> ]خذها مني كنصيحة
أشتغل بالتعليم منذ أكثر من 25 سنة
عمرك و لا تعمل أرقام الجلوس تلقائيا بالكود يجب كتابتها يدويا
هذا رقم جلوس يعني رقم تسجيل .. و أثناء التصحيح أو بما يسمى عملية الإغفال يتم حذف كل البيانات الخاصة بالمترشح و يحتفظون فقط برقم الجلوس و على أساسه يتم القبول أو الرسوب
المركز الواحد صحيح يبدأ برقم معين و يتم تسلسل باقي المترشحين على أساس الرقم الأولاني
لكن ببعض الأحيان و ببعض الحالات كانسحاب مترشح أو حتى وفاته يتم تخطي الترقيم التسلسلي لهذا المترشح
إذن طريقة كيف ستكون ؟
الكود سيكون كالتالي :
إذا كان جدول المترشحين فارغا من البيانات .. أكتب رقم التسجيل الأول المسجل لديك و الباقي مثلما ذكرت لك يدويا أو بإضافة + 1 لرقم التسجيل الأول مع التفكير بما ذكرته لك من مخاطرة بمستقبل الكثيرين
تحياتي
اشكرك اخي عبدالعزيز على النصيحة الهامة
هذا الكود احتاجة بصورة او باخرى لادراج ارقام الجلوس اليا وليس يدويا
انا سويت دالة وتنفيذ للدالة لكن المشكلة ان التنفيذ ياخذ وقت اطول من اللازم اذا كان عدد الطلاب اكثر من مائة طالب وكلما زاد اعداد الطلاب كلما تاخر اكثر
وهذ Function
و
إقتباس :PHP كود :
Function get_record(TableName, orderbyfield) As Integer
get_record = 0
Dim STR = "select * from " & TableName & " order by " & orderbyfield
Dim ADP = New SqlClient.SqlDataAdapter(STR, sqlconn)
Dim DS = New DataSet
ADP.Fill(DS)
Dim DT As DataTable
DT = DS.Tables(0)
If DT.Rows.Count <> 0 Then
Dim i = DT.Rows.Count - 1
get_record = Val(DT.Rows(i).Item(orderbyfield))
End If
End Function
وهذ كود التنفيذ
PHP كود :
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim adp As New SqlClient.SqlDataAdapter("Select * from student", sqlconn)
Dim cmds As New SqlClient.SqlCommand("", sqlconn)
Dim dt As New DataTable
adp.Fill(dt)
For i = 0 To dt.Rows.Count - 1
cmds.CommandText = "UPDATE student set glose=" & get_record("student", "glose") + 1 & " where stu_id =" & i & " "
If sqlconn.State = 1 Then sqlconn.Close()
sqlconn.Open()
cmds.ExecuteNonQuery()
sqlconn.Close()
Next
MsgBox("تمت العملية")
End Sub
ممكن تكتفي بالكود ده
كود :
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim adp As New SqlClient.SqlDataAdapter("Select * from student", sqlconn)
Dim dt As New DataTable
adp.Fill(dt)
Dim j As Integer = 10
For i = 0 To dt.Rows.Count - 1
dt.Rows(i)("glose") = (j + i)
Next
Dim cmd As New SqlClient.SqlCommandBuilder(adp)
adp.Update(dt)
MsgBox("تمت العملية")
End Sub
لكن راجع كلام اخي عبد العزيز
شكراَ اخي كريم هذا هو المطلوب