تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة في DataGridView
#1
لدي قاعدة بيانات تحتوي على حقلين :

الاول - الرقم

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


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


ارجو ان تكون وضحت الفكرة
الرد }}}
تم الشكر بواسطة: khodor1985
#2
سلام


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

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


موفقين
متغيب
الرد }}}
تم الشكر بواسطة: khodor1985 , VB.NET , أبو عمر , moh61
#3
هل يوجد توضيح اكثر على الكود الموجود عن طريق الطالب

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

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 
فين النقطة اللي اشكلت عليك في الكود؟
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة:
#5
اخوي ابوعمر انا ارفقت صورة فيها طريقة الكود الي انا استخدمه ارجو منك الاطلاع 

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

هذا الكود
مع العلم ان حقل الرقم هوا = 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


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#6
اذا الخطأ اللي في الصورة تقصد
استبدل
cmd
ب
da
وجرب

اه
واحذف
end using
لانك ما استخدمته اساسا
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة:
#7
طيب اخوب ابوعمر في هذا الكود وين اخليه يبحث

DA = New SqlClient.SqlDataAdapter("SELECT [Name] FROM [Doctor] WHERE [Doc] =?????????????????", DB)
الرد }}}
تم الشكر بواسطة:
#8
لو ترفع مثال الله يحفظك
تريح نفسك وتريحني معك
وابشر معك لين تقول انتهيت ان شاء الله
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة:
#9
الله يوفقك
طيب طيب برفق المثال
الرد }}}
تم الشكر بواسطة:
#10
في انتظارك
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة: khodor1985



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


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