تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] [تم الحل] مشكلة اضافة عناصر الي ListView
#1
السلام عليكم


عندي

كود :
Public Class JSON_result

       Public Property pk() As String

       Public Property username() As String

       Public Property full_name() As String

       Public Property is_private() As String

       Public Property profile_pic_url() As String

       Public Property profile_pic_id() As String

       Public Property is_verified() As String

       Public Property has_anonymous_profile_picture() String

       Public Property latest_reel_media() As String

   End Class


واقوم بجلب البيانات عبر

Dim mgdata = JsonConvert.DeserializeObject(Of JSON_result)(data)


واحاول اضافة العناصر لليست فيور عبر

ListView1.Items.Add(New ListViewItem({mgdata.Pk.ToString(), mgdata.Username, mgdata.FullName.ToString()}))

ولكن يظهر خطأ بسبب ان mgdata.FullName = nothing


كيف يمكن تخطي هذه المشكلة
الرد
#2
Public Property full_name() As String

ListView1.Items.Add(New ListViewItem({mgdata.Pk.ToString(), mgdata.Username, mgdata.full_name.ToString()}))
الرد
#3
(03-06-20, 11:15 PM)aljzazy كتب : Public Property full_name() As String

ListView1.Items.Add(New ListViewItem({mgdata.Pk.ToString(), mgdata.Username, mgdata.full_name.ToString()}))

للاسف نفس الخطأ
{"Object reference not set to an instance of an object."}

لما بحذف , mgdata.FullName.ToString()
بيشتغل بدون مشكلة
المشكلة ان بعض المتغيرات لما يكون ليس لها قيمة تعود ب nothing لذا يحدث الخطأ
لذا ابحث عن حل
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#4
شكرا لكم جميعا
تم ايجاد الحل في موقع اخر وهو

وعليكم السلام

المشكله هي انك تقوم بتحويل المتغير الي String عن طريق toString
وفي الكود قلت ان الـ متغير ممكن ان يكون Nothing or Null

فما يحدث انك تحاول تحويل Nothing لاشئ الي string فيحدث خطا

السؤال هو لماذا تحاول تحويل الـ FullName الذي نوعه String الي String

لا داعي للتحويل
لذا يمكنك تغير الكود الي
لا داعي لاستخدام ToString مع FullName كما هو الحال لديك مع Username

كود:

ListView1.Items.Add(New ListViewItem({mgdata.Pk.ToString(), mgdata.Username, mgdata.FullName}))

و يمكنك ايضا ان تقوم بعمل شرط اذا اردت وضع قيمه افتراضيه مثلا

كود:

If mgdata.FullName Is Nothing Then
mgdata.FullName="No Name" 'تضع قيمه افتراضيه تظهر للمستخدم
End If
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم