7 | Display column's stages from the database into ComboBox's Stage - VB.NET & SQL Server


١. تعريف المتغيرات:

Dim con As New SqlConnection(conString)
Dim dtstages As New DataTable

con: يقوم بإنشاء اتصال جديد بقاعدة البيانات باستخدام سلسلة الاتصال conString.
dtstages: هو كائن من نوع DataTable، يُستخدم لتخزين البيانات التي سيتم استرجاعها من قاعدة البيانات.

٢. مسح محتويات dtstages

dtstages.Clear()

يتم مسح أي بيانات قد تكون موجودة سابقًا في dtstages لضمان أن البيانات الجديدة ستكون نظيفة.

٣. فتح الاتصال:

con.Open()

يتم فتح الاتصال بقاعدة البيانات.

٤. استخدام الأمر SqlCommand:

  • Using cmd As New SqlCommand("SELECT ID,stage FROM tbl_stages WHERE status='Available'", con)

يتم إنشاء كائن جديد من SqlCommand لتنفيذ استعلام SQL، والذي يقوم باختيار ID و**stage** من جدول tbl_stages حيث الحالة (status) هي "متاحة" (Available).
con: هو الاتصال بقاعدة البيانات الذي سيتم استخدامه لتنفيذ الأمر.

٥. تعيين نوع الأمر ووقت التنفيذ:

cmd.CommandType = CommandType.Text
cmd.CommandTimeout = 420

CommandType.Text: يشير إلى أن الأمر هو نص SQL عادي.
CommandTimeout: يحدد الوقت المسموح به (بالثواني) لتنفيذ الأمر. في هذه الحالة، ٤٢٠ ثانية.


٦. تحميل البيانات إلى dtstages:dtstages.Load(cmd.ExecuteReader)

يتم تنفيذ الأمر واسترداد البيانات من قاعدة البيانات. يتم تحميل هذه البيانات مباشرة في dtstages باستخدام 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" 

cbox_stage: يتم تعيين مصدر البيانات إلى dtstages، ويعرض في القائمة قيم عمود stage.
cbox_stage_id: يتم تعيين مصدر البيانات إلى dtstages، ويعرض في القائمة قيم عمود ID


٩. إغلاق الاتصال:

con.Close()

يتم إغلاق الاتصال بقاعدة البيانات بعد الانتهاء من استخدامه. يتم ذلك داخل الكتلة Using، لذا ستُغلق تلقائيًا عند الخروج من الكتلة.


١٠. الحالة إذا لم توجد بيانات:

Else con.Close()

إذا لم يكن هناك أي صفوف، يتم ببساطة إغلاق الاتصال.


خلاصة:

هذا الكود يقوم بفتح اتصال بقاعدة بيانات، واسترداد بيانات المراحل المتاحة من جدول محدد، ثم يعرض هذه البيانات في عنصرين ComboBox. إذا لم توجد بيانات، يقوم الكود بإغلاق الاتصال فقط.


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
    End Sub


إذا كان لديك أي استفسارات إضافية، فلا تتردد في طرحها!




يمكنكم متابعة الدرس عن طريق اليوتيوب



تعليقات

المشاركات الشائعة من هذه المدونة

26 | Filter Students List based on students' stage and Group in DataGridView - VB.NET & SQL Server

8 | Get selected Stage and Group IDs from their ComboBoxes - VB.NET & SQL Server