منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
مساعدة في DataGridView - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : مساعدة في DataGridView (/showthread.php?tid=13198)

الصفحات: 1 2 3 4 5 6


مساعدة في DataGridView - VB.NET - 11-09-15

لدي قاعدة بيانات تحتوي على حقلين :

الاول - الرقم

الثاني - الاسم


اريد ان ابحث داخل الداتا جريد يعني اريد ادخال الرقم في خلية الداتا جريد فيو ويعطيني ناتج البحث 
بالخلية الثانية 


ارجو ان تكون وضحت الفكرة


RE: مساعدة في DataGridView - الطالب - 11-09-15

سلام


هذا الكود يعطيك النتيجه اثناء الكتابه، يعني لحظيه

غير اسم الجدول واسماء الحقول ولا تنس تتاكد من ارقام الاعمده فهنا الكتابه في العمود رقم 0 يعنى الاول والنتيجه في العمود رقم 1 يعنى الثاني
كود :
Dim con As New OleDb.OleDbConnection("Provider=Microsoft........")

Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
    AddHandler e.Control.TextChanged, AddressOf CellTextChanged
End Sub

Private Sub CellTextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    If Me.DataGridView1.CurrentCell.ColumnIndex = 0 Then
        Using cmd As New OleDb.OleDbCommand("SELECT [name] FROM [table1] WHERE [id] = ?", con)
            cmd.Parameters.AddWithValue("@id", Val(CType(sender, DataGridViewTextBoxEditingControl).Text))
            If con.State <> ConnectionState.Open Then con.Open()
            Me.DataGridView1.Item(1, Me.DataGridView1.CurrentCell.RowIndex).Value = cmd.ExecuteScalar
        End Using
    End If
End Sub


موفقين


RE: مساعدة في DataGridView - VB.NET - 25-09-15

هل يوجد توضيح اكثر على الكود الموجود عن طريق الطالب

حاولت افهم طريقة الكود لاكن ما قدرت


RE: مساعدة في DataGridView - أبو عمر - 25-09-15

نفس الكود اللي وضعه الاخ الاستاذ الطالب
هو نفسه اللي في مثال الاخ الاستاذ خضر
الاخ خضر اختصر لك الكود في حدث واحد
والاخ الطلب جعل الكود في حدثين للخلية
واي الكودين طبقت فهي نفس النتيجة
====================

PHP كود :
جمةل اتصالك بقاعدة البيانات 
Dim con 
As New OleDb.OleDbConnection("Provider=Microsoft........")
اجراء في حدث التحرير  مرتبط بحدث تحرير خلية في الجريد فيو
Private Sub DataGridView1_EditingControlShowing(ByVal sender As ObjectByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgsHandles DataGridView1.EditingControlShowing
    AddHandler e
.Control.TextChangedAddressOf CellTextChanged
End Sub
الاجاراء الاتي في حدث تغيير النص في الخلية وكما رأيت استخدمناه في الاعلى في الجملة
[size=small][font=MonacoConsolasCouriermonospacee.Control.TextChanged[/font][/size]


Private 
Sub CellTextChanged(ByVal sender As System.ObjectByVal e As System.EventArgs)
الاناذا الخلية اللي انت واقف عليها  في خلية في اول عمود اذن نفذ الاجراء الاتي
    If Me
.DataGridView1.CurrentCell.ColumnIndex 0 Then
الاجراء انك تتصل بالجدول مستخدما الجملة 
        Using cmd 
As New OleDb.OleDbCommand("SELECT [name] FROM [table1] WHERE [id] = ?"con)
 
           cmd.Parameters.AddWithValue("@id"Val(CType(senderDataGridViewTextBoxEditingControl).Text))
اذا الاتصال باقاعدة غير متاح اذا افتح الاتصال بالقاعدة مرر  جملة الاستعلام للجدول
            If con
.State <> ConnectionState.Open Then con.Open()
الاجراء الاخير يقوم بتعبئة الخلية المقابلة للخلية الاولى في العمود الثاني بعد احضار قيمة جملة الاستعلام السابقة
            Me
.DataGridView1.Item(1Me.DataGridView1.CurrentCell.RowIndex).Value cmd.ExecuteScalar
        End Using

    End 
If
End Sub 
فين النقطة اللي اشكلت عليك في الكود؟



RE: مساعدة في DataGridView - VB.NET - 25-09-15

اخوي ابوعمر انا ارفقت صورة فيها طريقة الكود الي انا استخدمه ارجو منك الاطلاع 

وكيف اعدل عليه

هذا الكود
مع العلم ان حقل الرقم هوا = Doc
وحقل الأسم = Name

Private Sub CellTextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

If Me.DataGridView1.CurrentCell.ColumnIndex = 0 Then

DA = New SqlClient.SqlDataAdapter("SELECT [Name] FROM [Doctor] WHERE [Doc] = ?", DB)
DA.Fill(DT)
cmd.Parameters.AddWithValue("@id", Val(CType(sender, DataGridViewTextBoxEditingControl).Text))


Me.DataGridView1.Item(1, Me.DataGridView1.CurrentCell.RowIndex).Value = cmd.ExecuteScalar
End Using

End If
End Sub


RE: مساعدة في DataGridView - أبو عمر - 25-09-15

اذا الخطأ اللي في الصورة تقصد
استبدل
cmd
ب
da
وجرب

اه
واحذف
end using
لانك ما استخدمته اساسا


RE: مساعدة في DataGridView - VB.NET - 25-09-15

طيب اخوب ابوعمر في هذا الكود وين اخليه يبحث

DA = New SqlClient.SqlDataAdapter("SELECT [Name] FROM [Doctor] WHERE [Doc] =?????????????????", DB)


RE: مساعدة في DataGridView - أبو عمر - 25-09-15

لو ترفع مثال الله يحفظك
تريح نفسك وتريحني معك
وابشر معك لين تقول انتهيت ان شاء الله


RE: مساعدة في DataGridView - VB.NET - 25-09-15

الله يوفقك
طيب طيب برفق المثال


RE: مساعدة في DataGridView - أبو عمر - 25-09-15

في انتظارك