31-12-24, 11:24 PM
لجلب أسماء الخوادم (Servers) من نوع SQL Server وإضافتها إلى ComboBox في تطبيق Visual Basic، مع أخذ مسار المجلد في الريجستري بعين الاعتبار بناءً على نوع النظام (32-bit أو 64-bit) ونوع SQL Server (32-bit أو 64-bit)، يمكنك استخدام الكود التالي:
الكود:
vb
نسخ الكود
شرح الكود:
الكود:
vb
نسخ الكود
كود :
Imports System.Data.Sql
Imports System.Data.SqlClient
Imports Microsoft.Win32
Public Sub LoadSqlServers()
Dim servers As New List(Of String)
Dim registryKey As String = ""
' التحقق من نوع النظام (32-bit أو 64-bit)
If Environment.Is64BitOperatingSystem Then
' إذا كان النظام 64-بت
If Environment.Is64BitProcess Then
registryKey = "SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
Else
registryKey = "SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server\Instance Names\SQL"
End If
Else
' إذا كان النظام 32-بت
registryKey = "SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"
End If
' قراءة أسماء السيرفرات من الريجستري
Try
Dim regKey As RegistryKey = Registry.LocalMachine.OpenSubKey(registryKey)
If regKey IsNot Nothing Then
For Each subKeyName As String In regKey.GetValueNames()
servers.Add(subKeyName)
Next
End If
' إضافة أسماء السيرفرات إلى ComboBox
ComboBox1.Items.Clear()
For Each server As String In servers
ComboBox1.Items.Add(server)
Next
Catch ex As Exception
MessageBox.Show("حدث خطأ أثناء جلب أسماء السيرفرات: " & ex.Message)
End Try
End Sub- التحقق من نوع النظام ونوع SQL Server:
- إذا كان النظام 64-bit، فإننا نتحقق إذا كان البرنامج الذي تعمل عليه هو 32-bit أم 64-bit باستخدام
Environment.Is64BitProcess - .
- بناءً على هذه القيم، يتم تحديد المسار الصحيح في الريجستري حيث يتم تخزين معلومات SQL Server.
- إذا كان النظام 64-bit، فإننا نتحقق إذا كان البرنامج الذي تعمل عليه هو 32-bit أم 64-bit باستخدام
- قراءة أسماء السيرفرات من الريجستري:
- نفتح Registry.LocalMachine باستخدام المسار الذي تم تحديده بناءً على نوع النظام.
- نقرأ أسماء السيرفرات من Instance Names\SQL التي هي أسماء مثبتة لخوادم SQL.
- نفتح Registry.LocalMachine باستخدام المسار الذي تم تحديده بناءً على نوع النظام.
- إضافة الأسماء إلى ComboBox:
- يتم إضافة أسماء الخوادم المستخلصة إلى ComboBox1.
- يتم إضافة أسماء الخوادم المستخلصة إلى ComboBox1.

