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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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


جلب اسم السرفر للكومبوبوكس - محمد خيري - 28-12-24

السلام عليكم
اخواني عندي هذا الكود لجلب اسم السرفر للكومبوبوكس 
و هو يعمل بشكل ممتاز على جهاز 32 بايت بدون أي خطأ 
لكن عندما أنقل الملف لجهاز 64 بايت يظهر لي هذا الخطأ 
Object reference not set to an instance of an object
حاولت اغير في المشروع ل 64 و كذلك جربت AnyCpu لكن بدون فائدة و نفس الخطأ يظهر لي 


كود :
   Public Sub Load_Servers(ByVal Cmb As ComboBox)
       Cmb.Items.Clear()
       Try
           Dim LocalMachine = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Registry64)
           Dim Rk = LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Microsoft Sql Server")
           Dim Instances = CType(Rk.GetValue("installedinstances"), String())
           If Instances.Length > 0 Then
               For Each Element As String In Instances
                   If Element = "MSSQLSERVER" Then
                       Cmb.Items.Add(System.Environment.MachineName)
                   Else
                       Cmb.Items.Add(System.Environment.MachineName + "\" + Element)
                   End If
               Next Element
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message, "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1)
       End Try

 End Sub

كود :
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

       Load_Servers(ComboBox1)

   End Sub
كيف يمكن حل هذي المشكلة بارك الله فيكم


RE: جلب اسم السرفر للكومبوبوكس - princelovelorn - 29-12-24

وعليكم السلام ورحمة الله وبركاته
جرب تعدل السطر التالى
كود :
Dim LocalMachine = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Registry64)


الى السطر التالى

كود :
Dim LocalMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)



RE: جلب اسم السرفر للكومبوبوكس - محمد خيري - 29-12-24

بارك الله فيك اخي princelovelorn 
لكن للاسف نفس الخطا يطلعلي


RE: جلب اسم السرفر للكومبوبوكس - princelovelorn - 29-12-24

ممكن ترفع مثال لمشروعك
لفحصه ومعرفة سبب الخطأ
لاني جربت الكودين على جهاز 64 وشغالين تمام

وبالمرفقات مثال على الكودين


RE: جلب اسم السرفر للكومبوبوكس - محمد خيري - 29-12-24

جزاك الله خيرا اخي الكريم
و الله مالي اي مشروع نفس الملف يلي ارسلته لي ماعملت له شيء
عندي جهازين . هذا الملف الاخير يلي ارسلته لي بارك الله فيك يشتغل على جهاز 32 زي الفل و بطريقة جد عدية
نقلته لجهاز 64 ظهرت لي رسالة الخطأ يلي ذكرتها بمشاركتي رقم 1


RE: جلب اسم السرفر للكومبوبوكس - princelovelorn - 29-12-24

(29-12-24, 04:00 PM)محمد خيري كتب : جزاك الله خيرا اخي الكريم
و الله مالي اي مشروع نفس الملف يلي ارسلته لي ماعملت له شيء
عندي جهازين . هذا الملف الاخير يلي ارسلته لي بارك الله فيك يشتغل على جهاز 32 زي الفل و بطريقة جد عدية
نقلته لجهاز 64 ظهرت لي رسالة الخطأ يلي ذكرتها بمشاركتي رقم 1

اللهم أمين وإياكم
أخي تأكد من تثبيت برنامج sql server على الجهاز ال 64bit
وتأكد من نوع الويندوز الذي تعمل عليه في هذا الجهاز


RE: جلب اسم السرفر للكومبوبوكس - محمد خيري - 29-12-24

اخي الكريم بالنسبة للجهاز هو 64 حسب الصورة

لكن ال sql serever هو 86 بايت و ليس 64 
و أنا متاكد أنه مثبت على الجهاز لاني اصلا اشتغل عليه


RE: جلب اسم السرفر للكومبوبوكس - princelovelorn - 30-12-24

انسخ رسالة الخطأ كاملة واكتبها هنا
لكي يستطيع الأخوة المساعدة ومعرفة سبب الخطأ الحقيقى


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


  1. افتح محرر الريجستري (Registry Editor):
    • اضغط على Win + R لفتح مربع التشغيل.
    • اكتب
      regedit
    • واضغط Enter.
  2. انتقل إلى المفتاح الرئيسي لـ SQL Server:
    • إذا كان لديك نظام تشغيل 64-bit:
      arduino
      نسخ الكود
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
    • إذا كان SQL Server 32-bit على نظام تشغيل 64-bit، قد يكون المفتاح في:
      arduino
      نسخ الكود
      HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Serverاستفيد من المسار لتعديل الكود



RE: جلب اسم السرفر للكومبوبوكس - محمد خيري - 31-12-24

بارك الله فيك استاذ صبحي الجزازي و نفع بك 
فعلا الان اشتغل الكود بهذا السطر
كود :
SOFTWARE\WOW6432Node\Microsoft\Microsoft
فقط لو سمحت
ألا يوجد كود يظهرلي اسماء السيرفر و يشتغل على النواتين بدون تغيير في  الكود
و شكرا كذلك للاخ الفاضل princelovelorn على مجهوداته الطيبة