تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في اسناد قيمة الى حقل !
#1
[COLOR="#696969"]بسم الله الرحمن الرحيم

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


واجهتني مشكلة عند محاولة اسناد قيمة فارغة من الداتا جريد فيو الى حقل نصي
[HTML]
Delete_frm.txt_Phone1.Text = DataGridView1.CurrentRow.Cells(4).Value[/HTML]

حاولت بطريقة اخرى
[HTML]Delete_frm.txt_Phone1.Text = IIf(DataGridView1.CurrentRow.Cells(4).Value = "", System.DBNull.Value, DataGridView1.CurrentRow.Cells(4).Value[/HTML]

ولكن لم انجح

ارجو التوضيح

والف شكر
[/COLOR]
الرد }}}
تم الشكر بواسطة:
#2
حاول تستبدل :

[b][SIZE=4]
كود :
.Value = ""

[/SIZE]
[/b]بــ :

[b][SIZE=4]
كود :
[b][color=#696969][SIZE=4].Value = Is Nothing[/SIZE][/color][/b]


[/SIZE]
[/b]
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة:
#3
السلام عليكم و رحمة الله و بركاته,

أخي الكريم, جرب الكود التالي:

[HTML]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)[/HTML]
الرد }}}
تم الشكر بواسطة:
#4
الف شكر اخوتي في المنتدى
kslawy
hoob computer
على اجاباتكم، وقد عمل الحل الذي تفضلتم به.....
ولكنــــــــــــي بصراحة انا مستغرب بشدة للغاية، وفي حيرة من امري


تم تعبئة البيانات على داتا جريد فيو، وعند ضغط المستثمر على سطر معين من الداتا جريد فيو.......فاننا سوف نسحب قيم ذلك السطر الى حقول شاشة التعديل

وجدت طريقتين للحل.
1- الطريقة الاولى، كما هو بالاعلى انني مضطر الى وضع سطر طويل لكل قيمة...... من اجل الا احصل على خطأ بسبب احتمال ان تكون احدى القيم فارغة

2- طريقة ثانية، تقبل القيم الفارغة ........وهي ان اعمل حقول مخفية تحت الجريد فيو مثلا
txt_Phone1_View.DataBindings.Add("Text", ds, "Zatea.Phone1"
اي استخدام الداتا بايندنج، ومن ثم عند استدعاء نافذة التعديل
Edit_frm.txt_Phone1.Text = Me.txt_Phone1_View.Text
وهنا لو كانت القيمة فارغة لا تحدث مشكلة

لماذا بالطريقة الاولى مشكلة بالقيمة الفارغة ( ويجب الاحتياط ووضع الاكواد المناسبة كما تفضلتم حضرتكم وعدلتم الكود، وطريقة ثانية تسرد القيم الفارغة دون اشكال)
ارجو توضيح اللبس

والف شكر
الرد }}}
تم الشكر بواسطة:
#5
لم أفهم قصدك يا أخي kafi؟
الرد }}}
تم الشكر بواسطة:
#6
جرب هذا :
كود :
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Try
            If DataGridView1.RowCount > 0 Then
                If DataGridView1.SelectedRows.Count > 0 Then
                    Dim dgvr As DataGridViewRow = DataGridView1.SelectedRows(0)
                    With dgvr
                        Me.TextBox1.Text = GetCellsValue(dgvr.Cells(0))
                        Me.TextBox2.Text = GetCellsValue(dgvr.Cells(1))
                        Me.TextBox3.Text = GetCellsValue(dgvr.Cells(2))
                    End With
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
        End Try
    End Sub


    Private Function GetCellsValue(ByVal dgvCell As DataGridViewCell) As String
        Try
            If dgvCell.Value IsNot Nothing Then
                Return dgvCell.Value
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
        End Try
    End Function
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة:
#7
اولا سلام عليكم ورحمة الله وبركاته

منذ فترة لم ادخل الى المنتدى

من الطبيعى انه يحدث معك هذا الامر لان نوع الحقل رقمى والمطلوب منك بكل بساطة هو انك تزيد كلمة ToString ليعطيك قيمتها الفارغة

PHP كود :
Delete_frm.txt_Phone1.Text DataGridView1.CurrentRow.Cells(4).Value.ToString 
قم بعلم ولا تطلب به بدلا             فالناس موتى وأهل العلم احياء

الامام على رضوان الله عليه
الرد }}}
تم الشكر بواسطة:
#8
Ahmed_Online كتب :اولا سلام عليكم ورحمة الله وبركاته

منذ فترة لم ادخل الى المنتدى

من الطبيعى انه يحدث معك هذا الامر لان نوع الحقل رقمى والمطلوب منك بكل بساطة هو انك تزيد كلمة ToString ليعطيك قيمتها الفارغة

PHP كود :
Delete_frm.txt_Phone1.Text DataGridView1.CurrentRow.Cells(4).Value.ToString 

وعليكم السلام ورحمة الله وبركاته
شكرا جزيلا استاذ وبارك الله فيك
ربي يحفظك
الرد }}}
تم الشكر بواسطة:
#9
شكرا اخوتي
kslawy / ahamad-online
على اجاباتكم

إقتباس :من الطبيعى انه يحدث معك هذا الامر لان نوع الحقل رقمى والمطلوب منك بكل بساطة هو انك تزيد كلمة ToString ليعطيك قيمتها الفارغة

تم تطبيق ماتفضلت به اخي / احمد / من اضافة كلمة tostring والحمد لله انحلت المشكلة، ولم اعد بحاجة الى الكود الطويل الذي تفضل الاخوة في اعلى المشاركة بتصحيحه وتصوييه من حيث فحص القيمة،


ولكـــــــــــــــــــــــــن
كافة الحقول في قاعدة البيانات ( الاسم -ارقام الهواتف والفاكس.... الخ ) هي من نوع string وليست رقمية
ارجو مزيد من التوضيح
والف شكر
الرد }}}
تم الشكر بواسطة:
#10
السلام عليكم

تم تجريب الكود الذي تفضل به اخي
kslawy

[HTML]Try
If DataGridView1.RowCount > 0 Then
If DataGridView1.SelectedRows.Count > 0 Then
Dim dgvr As DataGridViewRow = DataGridView1.SelectedRows(0)
With dgvr

Delete_frm.txt_Zatea_id.Text = GetCellsValue(dgvr.Cells(0))
Delete_frm.txt_Customer.Text = GetCellsValue(dgvr.Cells(1))

Delete_frm.ListBox1.Text = GetCellsValue(dgvr.Cells(3))

Delete_frm.txt_Area.Text = GetCellsValue(dgvr.Cells(2))

Delete_frm.txt_Phone1.Text = GetCellsValue(dgvr.Cells(4))
Delete_frm.txt_Phone2.Text = GetCellsValue(dgvr.Cells(5))

Delete_frm.txt_fax.Text = GetCellsValue(dgvr.Cells(7))
Delete_frm.txt_Mobile.Text = GetCellsValue(dgvr.Cells(6))

Delete_frm.txt_Email.Text = GetCellsValue(dgvr.Cells(8))
Delete_frm.txt_Note.Text = GetCellsValue(dgvr.Cells(9))
End With
End If
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, Me.Text)
End Try[/HTML]


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

اعمل على win8 + vb12

[ATTACH=CONFIG]3277[/ATTACH]


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:



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


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