منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : جلب اسم السرفر للكومبوبوكس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم
اخواني عندي هذا الكود لجلب اسم السرفر للكومبوبوكس 
و هو يعمل بشكل ممتاز على جهاز 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
كيف يمكن حل هذي المشكلة بارك الله فيكم
وعليكم السلام ورحمة الله وبركاته
جرب تعدل السطر التالى
كود :
Dim LocalMachine = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Registry64)


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

كود :
Dim LocalMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
بارك الله فيك اخي princelovelorn 
لكن للاسف نفس الخطا يطلعلي
ممكن ترفع مثال لمشروعك
لفحصه ومعرفة سبب الخطأ
لاني جربت الكودين على جهاز 64 وشغالين تمام

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

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

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

  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استفيد من المسار لتعديل الكود
بارك الله فيك استاذ صبحي الجزازي و نفع بك 
فعلا الان اشتغل الكود بهذا السطر
كود :
SOFTWARE\WOW6432Node\Microsoft\Microsoft
فقط لو سمحت
ألا يوجد كود يظهرلي اسماء السيرفر و يشتغل على النواتين بدون تغيير في  الكود
و شكرا كذلك للاخ الفاضل princelovelorn على مجهوداته الطيبة
الصفحات : 1 2