واجهتني مشكلة عند محاولة اسناد قيمة فارغة من الداتا جريد فيو الى حقل نصي
[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]
الف شكر اخوتي في المنتدى
kslawy
hoob computer
على اجاباتكم، وقد عمل الحل الذي تفضلتم به..... ولكنــــــــــــي بصراحة انا مستغرب بشدة للغاية، وفي حيرة من امري
تم تعبئة البيانات على داتا جريد فيو، وعند ضغط المستثمر على سطر معين من الداتا جريد فيو.......فاننا سوف نسحب قيم ذلك السطر الى حقول شاشة التعديل
وجدت طريقتين للحل.
1- الطريقة الاولى، كما هو بالاعلى انني مضطر الى وضع سطر طويل لكل قيمة...... من اجل الا احصل على خطأ بسبب احتمال ان تكون احدى القيم فارغة
2- طريقة ثانية، تقبل القيم الفارغة ........وهي ان اعمل حقول مخفية تحت الجريد فيو مثلا
txt_Phone1_View.DataBindings.Add("Text", ds, "Zatea.Phone1"
اي استخدام الداتا بايندنج، ومن ثم عند استدعاء نافذة التعديل
Edit_frm.txt_Phone1.Text = Me.txt_Phone1_View.Text
وهنا لو كانت القيمة فارغة لا تحدث مشكلة
لماذا بالطريقة الاولى مشكلة بالقيمة الفارغة ( ويجب الاحتياط ووضع الاكواد المناسبة كما تفضلتم حضرتكم وعدلتم الكود، وطريقة ثانية تسرد القيم الفارغة دون اشكال)
ارجو توضيح اللبس
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
إقتباس :من الطبيعى انه يحدث معك هذا الامر لان نوع الحقل رقمى والمطلوب منك بكل بساطة هو انك تزيد كلمة ToString ليعطيك قيمتها الفارغة
تم تطبيق ماتفضلت به اخي / احمد / من اضافة كلمة tostring والحمد لله انحلت المشكلة، ولم اعد بحاجة الى الكود الطويل الذي تفضل الاخوة في اعلى المشاركة بتصحيحه وتصوييه من حيث فحص القيمة،
ولكـــــــــــــــــــــــــن
كافة الحقول في قاعدة البيانات ( الاسم -ارقام الهواتف والفاكس.... الخ ) هي من نوع string وليست رقمية
ارجو مزيد من التوضيح
والف شكر
[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_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]