10 | Populate Academic year ComboBox using For Loop Statement - VB.NET & SQL Server
١. تعريف الإجراء:
Private Sub frm_Register_New_Student_Load(...)
: يتم استدعاء هذا الإجراء عندما يتم تحميل النموذج (Form) المسمىfrm_Register_New_Student
.
٢. تحديد السنة الدراسية الأولى:
Dim First_Year As Integer = Date.Now.Year - 1
: يتم تعيينFirst_Year
إلى السنة الحالية ناقص واحد. على سبيل المثال، إذا كانت السنة الحالية ٢٠٢٤، فإنFirst_Year
ستصبح ٢٠٢٣.
٣. حلقة لإضافة السنوات الدراسية:
For y As Integer = 0 To 1
: تبدأ حلقة تكرارية (For loop) من 0 إلى 1، مما يعني أنها ستنفذ مرتين.- في كل تكرار:
cbox_AcademicYear.Items.Add(First_Year & "-" & First_Year + 1)
: يتم إضافة نص إلى ComboBox يسمىcbox_AcademicYear
. النص يكون بالشكل "السنة - السنة التالية". على سبيل المثال، إذا كانتFirst_Year
٢٠٢٣، فسيتم إضافة "٢٠٢٣-٢٠٢٤".First_Year = First_Year + 1
: يتم زيادةFirst_Year
بسنة واحدة للانتقال إلى السنة التالية.
٤. تحديد العنصر المحدد في ComboBox:
cbox_AcademicYear.SelectedIndex = 0
: بعد إضافة العناصر، يتم تعيين العنصر المحدد فيcbox_AcademicYear
إلى العنصر الأول (الفهرس 0).
خلاصة:
هذا الكود يقوم بإضافة سنتين دراسيتين إلى ComboBox عند تحميل النموذج. السنوات ستكون من السنة الحالية ناقص واحدة إلى السنة التالية، وتعيين العنصر الأول كخيار افتراضي.
كود المستخدم بهذا الدرس فقط داخل حدث frm_Register_New_Student_Load
Private Sub frm_Register_New_Student_Load(sender
As Object, e As EventArgs) Handles MyBase.Load
Dim First_Year As Integer = Date.Now.Year - 1 '2023
For y As Integer = 0 To 1
cbox_AcademicYear.Items.Add(First_Year & "-" &
First_Year + 1)
First_Year =
First_Year + 1
Next
cbox_AcademicYear.SelectedIndex = 0
End Sub
Private Sub frm_Register_New_Student_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim First_Year As Integer = Date.Now.Year - 1 '2023
For y As Integer = 0 To 1
cbox_AcademicYear.Items.Add(First_Year & "-" &
First_Year + 1)
First_Year =
First_Year + 1
Next
cbox_AcademicYear.SelectedIndex = 0
End Sub
الكود كامل المستخدم داخل حدث frm_Register_New_Student_Load
Private Sub frm_Register_New_Student_Load(sender
As Object, e As EventArgs) Handles MyBase.Load
' كود الدروس السابقة
Dim con As New SqlConnection(conString)
Dim dtstages As New DataTable
dtstages.Clear()
con.Open()
Using cmd As New SqlCommand("SELECT ID,stage FROM tbl_stages WHERE
status='Available'", con)
cmd.CommandType
= CommandType.Text
cmd.CommandTimeout = 420
dtstages.Load(cmd.ExecuteReader)
If dtstages.Rows.Count <>
0 Then
cbox_stage.DataSource = dtstages
cbox_stage.DisplayMember = "stage"
cbox_stage_id.DataSource = dtstages
cbox_stage_id.DisplayMember = "ID"
con.Close()
Else
con.Close()
End If
End Using
Dim dtfee As New DataTable
dtfee.Clear()
con.Open()
Using cmd As New SqlCommand("SELECT study_fee
FROM tbl_stages WHERE status= @status and stage = @stage", con)
cmd.Parameters.AddWithValue("@status", "Available")
cmd.Parameters.AddWithValue("@stage", cbox_stage.Text.Trim)
cmd.CommandType
= CommandType.Text
cmd.CommandTimeout = 420
dtfee.Load(cmd.ExecuteReader)
If dtfee.Rows.Count <> 0 Then
txt_fee.Text
= dtfee.Rows(0).Item("study_fee").ToString
con.Close()
Else
con.Close()
End If
End Using
'____________________________________________________________________
' كود الدرس الحالي
'____________________________________________________________________
Dim First_Year As Integer = Date.Now.Year - 1 '2023
For y As Integer = 0 To 1
cbox_AcademicYear.Items.Add(First_Year & "-" &
First_Year + 1)
First_Year =
First_Year + 1
Next
cbox_AcademicYear.SelectedIndex = 0
End Sub
Private Sub frm_Register_New_Student_Load(sender
As Object, e As EventArgs) Handles MyBase.Load
' كود الدروس السابقة
Dim con As New SqlConnection(conString)
Dim dtstages As New DataTable
dtstages.Clear()
con.Open()
Using cmd As New SqlCommand("SELECT ID,stage FROM tbl_stages WHERE
status='Available'", con)
cmd.CommandType
= CommandType.Text
cmd.CommandTimeout = 420
dtstages.Load(cmd.ExecuteReader)
If dtstages.Rows.Count <>
0 Then
cbox_stage.DataSource = dtstages
cbox_stage.DisplayMember = "stage"
cbox_stage_id.DataSource = dtstages
cbox_stage_id.DisplayMember = "ID"
con.Close()
Else
con.Close()
End If
End Using
Dim dtfee As New DataTable
dtfee.Clear()
con.Open()
Using cmd As New SqlCommand("SELECT study_fee
FROM tbl_stages WHERE status= @status and stage = @stage", con)
cmd.Parameters.AddWithValue("@status", "Available")
cmd.Parameters.AddWithValue("@stage", cbox_stage.Text.Trim)
cmd.CommandType
= CommandType.Text
cmd.CommandTimeout = 420
dtfee.Load(cmd.ExecuteReader)
If dtfee.Rows.Count <> 0 Then
txt_fee.Text
= dtfee.Rows(0).Item("study_fee").ToString
con.Close()
Else
con.Close()
End If
End Using
'____________________________________________________________________
' كود الدرس الحالي
'____________________________________________________________________
Dim First_Year As Integer = Date.Now.Year - 1 '2023
For y As Integer = 0 To 1
cbox_AcademicYear.Items.Add(First_Year & "-" &
First_Year + 1)
First_Year =
First_Year + 1
Next
cbox_AcademicYear.SelectedIndex = 0
End Sub
إذا كان لديك أي أسئلة أخرى أو تحتاج إلى مزيد من التوضيح، فلا تتردد في طرحها!
يمكنكم متابعة الدرس عن طريق اليوتيوب
تعليقات
إرسال تعليق