الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في اسناد قيمة فارغة الى حقل !

بدأه kafi في 1 يوليو 2013 · 4 رد · 862 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

 

السلام عليكم ورحمة الله وبركاته

 

صادفت مشكلة، عند محاولة اسناد قيمة خلية معينة في داتا جريد الى حقل، عندما تكون تلك الفيمة على الداتا جريد فيو فارغة

Delete_frm.txt_Phone1.Text = DataGridView1.CurrentRow.Cells(4).Value

احصل على رسالة خطاً، اذا كانت الخلية رقم 4 فارغة....

 

 

حاولت ان اضع الكود التالي من اجل الالتفاف على القيمة الفارغة

Delete_frm.txt_Phone1.Text = IIf(DataGridView1.CurrentRow.Cells(4).Value = "", System.DBNull.Value, DataGridView1.CurrentRow.Cells(4).Value

ولكن لم يقبل هذا الكود

 

ارجو ارشادي ........ الى الحل

 

والف شكر

تم تعديل هذه المشاركة بواسطة kafi في 1 يوليو 2013 في 23:32

#2

السلام عليكم ورحمة الله.

أخي العزيز: من المفترض أن لا تحدث تلك المشكلة ولكن ربما كانت قيمة الخلية المدخلة أكبر من عدد الأعمدة لأن الترقيم يبدأ من الصفر لأن العامود الرابع هو فعلياً رقمه 3
ثانياً يجب الانتباه إلى أنك في محاولتك الالتفاف على المشكلة استخدمت علامة التنصيص للتأكد من أن الخلية خالية ، هذا سينفع إذا قام المستخدم بحذف محتوى الخلية أما إذا لم يدخل فيها قيمة أصلاً فإن قيمة تلك الخلية ستكون NULL وليس فراغ "" وبالتالي لن تستفيد من تلك المقارنة. لان هناك فرق بين القيمتين أي القيمة Null والقيمة فراغ ""

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        For rowNo = 0 To 10
            DataGridView1.Rows.Add()
            DataGridView1.Item(0, rowNo).Value = rowNo
            If rowNo <> 3 Then
                DataGridView1.Item(1, rowNo).Value = rowNo * 2
            End If
        Next
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = DataGridView1.CurrentRow.Cells(1).Value
        'TextBox1.Text = DataGridView1.CurrentRow.Cells(2).Value
    End Sub

منْ يُقبّل الحذاء الذي يدوسه    يعض اليد التي تمتد لمساعدته.

#3

شكرا اخي

NaserHk

على محاولتك الاجابة ........ ولكنها بعيدة تماما عن ما اردت

 

والحمد لله وجدت الحل عن طريقة مساعدة احد اعضاء منتدى اخر وهو

Delete_frm.txt_Phone1.Text = If(DataGridView1.CurrentRow.Cells(4) Is Nothing OrElse DataGridView1.CurrentRow.Cells(4).Value Is Nothing, Delete_frm.txt_Phone1.Text = "", DataGridView1.CurrentRow.Cells(4).Value.ToString)

واحببت ان اضعه هنا ، كي يستفيد منه اخواتي اعصاء المنتدى

 

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

#4
kafi كتب:

شكرا اخي

NaserHk

على محاولتك الاجابة ........ ولكنها بعيدة تماما عن ما اردت

 

والحمد لله وجدت الحل عن طريقة مساعدة احد اعضاء منتدى اخر وهو

Delete_frm.txt_Phone1.Text = If(DataGridView1.CurrentRow.Cells(4) Is Nothing OrElse DataGridView1.CurrentRow.Cells(4).Value Is Nothing, Delete_frm.txt_Phone1.Text = "", DataGridView1.CurrentRow.Cells(4).Value.ToString)

واحببت ان اضعه هنا ، كي يستفيد منه اخواتي اعصاء المنتدى

 

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

 

للفائدة أخي العزيز:

إذا أعدت التدقيق في ما أخبرتك به وكذلك التدقيق بالشيفرة الحل ستجد أن جوهر المشكلة هي القيمة  NULL والقيمة "" فراغ

منْ يُقبّل الحذاء الذي يدوسه    يعض اليد التي تمتد لمساعدته.

#5

ممكن تستخدم الكود التالي وهو اسهل 

TextBox1.Text = IIf(DataGridView1.CurrentRow.Cells(4).Value Is DBNull.Value, "", DataGridView1.CurrentRow.Cells(4).Value)

تم تعديل هذه المشاركة بواسطة beep في 18 يوليو 2013 في 16:49

مواضيع مشابهة