الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ال Datagridview ممكن المساعدة

بدأه قهوة الصباح في 27 ديسمبر 2009 · 4 رد · 916 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ممكن أحد يوضح لي بالتفصيل طريقة استخدام datagridview

برنامجي هو:

اني ابي استرجع أسماء الطلاب من الداتابيس في combobox

وبعد أن اختار اسم طالب تسترجع اختباراته فيdatagridview واختار الاختبار اللي ابي احذفه عن طريق checkbox واحذف

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

وشكرا

تم تعديل هذه المشاركة بواسطة قهوة الصباح في 27 ديسمبر 2009 في 21:53

#2

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

في الوضع المنفصل

في الوضع المتصل

بالنسبة لطريقة حذف سطور الداتاجريدفيو عن طريق تعليمها في عمود مربعات الاختيار, أنظر هنا :

كيفية حذف أكثر من سجل في داتاجريدفيو عن طريق تشيك بوكسز

بالتوفيق :)

#3

أخ محمد رضى أشكرك جزيل الشكر على الموضوع أفادني كثير

أنا طبقت كود الأخ محمد ومشى معاي بس عندي مشكلتين

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

وهذا الكود

Private Sub PersonForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim sb As BindingSource
        Dim eb As BindingSource

        Dim MyAdapter As New OleDbDataAdapter
        Dim mydataset As DataSet

        Dim con As New OleDbConnection
        con.ConnectionString = "provider =microsoft.jet.oledb.4.0;data source=c:\CBL\CBLDB.mdb"

        MyAdapter = New OleDbDataAdapter("select * from exam ", con)

        MyAdapter.UpdateCommand = New OleDbCommand("UPDATE exam SET [etype] = @etype, [edate] = @edate,[grade] = @grade, SID = @SID WHERE EID = @EID", MyAdapter.SelectCommand.Connection)
        MyAdapter.UpdateCommand.Parameters.Add("@etype", OleDbType.WChar, 32, "etype")
        MyAdapter.UpdateCommand.Parameters.Add("@edate", OleDbType.WChar, 32, "edate")
        MyAdapter.UpdateCommand.Parameters.Add("@grade", OleDbType.WChar, 32, "grade")
        MyAdapter.UpdateCommand.Parameters.Add("@SID", OleDbType.BigInt, 1, "SID")
        MyAdapter.UpdateCommand.Parameters.Add("@EID", OleDbType.BigInt, 1, "EID")


        MyAdapter.DeleteCommand = New OleDbCommand("DELETE FROM exam WHERE EID = @EID", MyAdapter.SelectCommand.Connection)
        MyAdapter.DeleteCommand.Parameters.Add("@EID", OleDbType.BigInt, 1, "EID")



        mydataset = New DataSet("AccessDB")


        MyAdapter.Fill(mydataset, "exam")


        Dim adptr As New OleDbDataAdapter("SELECT * FROM student", MyAdapter.SelectCommand.Connection)
        adptr.Fill(mydataset, "student")
        adptr.Dispose()


        mydataset.Tables("student").ChildRelations.Add(New DataRelation("FK_student_exam", _
        mydataset.Tables("student").Columns("SID"), _
        mydataset.Tables("exam").Columns("EID")))

        sb = New BindingSource(mydataset, "student")


        ComboBox1.DataSource = sb
        ComboBox1.DisplayMember = "s_name"
        ComboBox1.ValueMember = "SID"


        eb = New BindingSource(mydataset, "exam")

        DataGridView1.DataSource = eb


        DataGridView1.Columns("EID").ReadOnly = True
        DataGridView1.Columns("SID").Visible = False


        If mydataset.HasChanges() Then
            Me.Validate()

            MyAdapter.Update(mydataset.Tables("exam"))
        End If


        DataGridView1.Columns.Add(New DataGridViewCheckBoxColumn())
        DataGridView1.Columns(1).HeaderText = "Check 2 Del"
    End Sub

المشكلة الثانية: أنه قاعد يحذف فقط من الداتاقريدفيو مش من الداتابيس

ياليت اذا ممكن أحد يعدل لي الكود لاني حاولت خلال اليومين اللي راحت وما وصلت لنتيجة

وهذا كود الحذف

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim con As New OleDbConnection
        con.ConnectionString = "provider =microsoft.jet.oledb.4.0;data source=c:\CBL\CBLDB.mdb"




        For i As Integer = DataGridView1.Rows.Count - 1 To 0 Step -1


            Dim row As DataGridViewRow = DataGridView1.Rows(i)


            If Not row.IsNewRow Then


                If row.Cells(5).Value = True Then


                    DataGridView1.Rows.Remove(row)

                End If

            End If
        Next



    End Sub

أكرر شكري مرة أخرى

#4

مقطع الكود التالي هو الذي ينفذ عملية حفظ التغييرات إلى قاعدة البيانات. المرجو نقله من دالة الحدث Load إلى دالة الحدث Click لزر أو دالة الحدث FormClosing للفورم. بهذه الطريقة, يمكن للمستخدم حفظ التغييرات عند النقر على الزر أو عند غلق الفورم.

        If mydataset.HasChanges() Then
            Me.Validate()

            MyAdapter.Update(mydataset.Tables("exam"))
        End If

إذا لم تحل المشكلة, المرجو إرفاق المشروع و قاعدة البيانات للتعديل عليها و حل المشاكل.

بالتوفيق :)

#5

اشكرك اخي محمد على اهتمامك وزادك ربي علما

في الحقيقة عملت كثيرا على هذا الكود ولم اتوصل لنتيجة ..

لازالت مشكلة الحذف قائمة وهي انه يحذف من القريد فيو فقط ولا يحذف من القاعده

وايضا مشكلة اخرى عند استعراضي للاسماء في الكمبوبوكس تظهر كافة الدرجات لكافة الطلاب ... وهذا غلط اللذي اريده انا هو

عند اختياري لاسم طالب من الكمبو بوكس يظهر في القريد فيو درجات هذا الطالب فقط .

ورفعت لك البرنامج لتساعدني بتعديله مشكورا , , , ,

* عذرا وضعته على رابط خارجي لان الحد الاقصى لملفات المنتدى صغير بالنسبة لملفي

هنا

تم تعديل هذه المشاركة بواسطة قهوة الصباح في 3 يناير 2010 في 20:01

مواضيع مشابهة