منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مساعدة في DataGridView
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4 5 6
لدي قاعدة بيانات تحتوي على حقلين :

الاول - الرقم

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


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


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


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

غير اسم الجدول واسماء الحقول ولا تنس تتاكد من ارقام الاعمده فهنا الكتابه في العمود رقم 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


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

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

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 
فين النقطة اللي اشكلت عليك في الكود؟
اخوي ابوعمر انا ارفقت صورة فيها طريقة الكود الي انا استخدمه ارجو منك الاطلاع 

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

هذا الكود
مع العلم ان حقل الرقم هوا = 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
اذا الخطأ اللي في الصورة تقصد
استبدل
cmd
ب
da
وجرب

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

DA = New SqlClient.SqlDataAdapter("SELECT [Name] FROM [Doctor] WHERE [Doc] =?????????????????", DB)
لو ترفع مثال الله يحفظك
تريح نفسك وتريحني معك
وابشر معك لين تقول انتهيت ان شاء الله
الله يوفقك
طيب طيب برفق المثال
في انتظارك
الصفحات : 1 2 3 4 5 6