منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
جلب اسم السرفر للكومبوبوكس - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : جلب اسم السرفر للكومبوبوكس (/showthread.php?tid=50856)

الصفحات: 1 2


RE: جلب اسم السرفر للكومبوبوكس - aljzazy - 31-12-24

لجلب أسماء الخوادم (Servers) من نوع SQL Server وإضافتها إلى ComboBox في تطبيق Visual Basic، مع أخذ مسار المجلد في الريجستري بعين الاعتبار بناءً على نوع النظام (32-bit أو 64-bit) ونوع SQL Server (32-bit أو 64-bit)، يمكنك استخدام الكود التالي:
الكود:
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
شرح الكود:
  1. التحقق من نوع النظام ونوع SQL Server:
    • إذا كان النظام 64-bit، فإننا نتحقق إذا كان البرنامج الذي تعمل عليه هو 32-bit أم 64-bit باستخدام
      Environment.Is64BitProcess
    • .
    • بناءً على هذه القيم، يتم تحديد المسار الصحيح في الريجستري حيث يتم تخزين معلومات SQL Server.
  2. قراءة أسماء السيرفرات من الريجستري:
    • نفتح Registry.LocalMachine باستخدام المسار الذي تم تحديده بناءً على نوع النظام.
    • نقرأ أسماء السيرفرات من Instance Names\SQL التي هي أسماء مثبتة لخوادم SQL.
  3. إضافة الأسماء إلى ComboBox:
    • يتم إضافة أسماء الخوادم المستخلصة إلى ComboBox1.