تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] نقل سجل من جدول الى جدول اخر
#21
(05-09-15, 03:16 AM)الطالب كتب : سلام


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

لتجربت الكود يتم اضافت جدولين داتاجريدفيو وزر واحد
وما ننساش قاعدتين بيانات مع تغيير اسماء قاعدت البيانات واسماء الجداول عند اللزوم

توجد في هذا الكود ثلاث طرق لنقل اسطر بين جدولين:
1- ضغط الزر:  مهمته عي نقل مجموعت اسطر بعد تحديدها في الجدول الاول عن طريق الماوس.
2- النقر المزدوج: ويعمل بلنقر مرتين على السطر في الجدول الاول لنقله.
3- السحب والاسقاط: تعمل بسحب سطر من الجدول الاول واسقاطه على الجدول الثاني.

تم وضع جملتين اتصال لاحتمال التطبيق على قاعدتين بيانات.

كود :
Public Class Form1

   Dim connStr1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb;"
   Dim connStr2 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb;"

   Dim sql1 As String = "SELECT * FROM [table1]"
   Dim sql2 As String = "SELECT * FROM [table2]"


   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       DataGridView1.AllowDrop = True
       DataGridView2.AllowDrop = True
       Call fillDatagridviews()
   End Sub


   Dim dt1 As New DataTable
   Dim dt2 As New DataTable
#Region " تعبئت الجدول من قاعدت البيانات "
   Private Sub fillDatagridviews()
       Dim c1 = New OleDb.OleDbDataAdapter("SELECT * FROM [table1]", connStr1).Fill(dt1)
       DataGridView1.DataSource = dt1

       Dim c2 = New OleDb.OleDbDataAdapter("SELECT * FROM [table2]", connStr2).Fill(dt2)
       DataGridView2.DataSource = dt2
   End Sub
#End Region
#Region " تحديث قاعدت البيانات "
   Private Sub updateDatebase()
       Using da As New OleDb.OleDbDataAdapter(sql1, connStr1)
           Using builder As New OleDb.OleDbCommandBuilder(da)
               da.Update(dt1)
           End Using
       End Using
       Using da As New OleDb.OleDbDataAdapter(sql2, connStr2)
           Using builder As New OleDb.OleDbCommandBuilder(da)
               da.Update(dt2)
           End Using
       End Using
   End Sub
#End Region


   ' الطريقه الاولى
#Region " زر النقل بعد اختيار اسطر من الجدول الاول "
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       For Each row As DataGridViewRow In DataGridView1.SelectedRows
           If DataGridView1.AllowUserToAddRows And row.Index = DataGridView1.Rows.Count - 1 Then Exit For
           dt2.Rows.Add((From cels In row.Cells Select cels.Value).ToArray)
           DataGridView1.Rows.Remove(row)
       Next
       DataGridView2.DataSource = dt2
   End Sub
#End Region

   ' الطريقه الثانيه
#Region " زر النقل بعد النقر المزدوج على سطر في الجدول الاول "
   Private Sub DataGridView1_RowHeaderMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.RowHeaderMouseDoubleClick
       If sender.AllowUserToAddRows And e.RowIndex = sender.Rows.Count - 1 Then Return
       dt2.Rows.Add((From cels In CType(sender, DataGridView).Rows(e.RowIndex).Cells Select cels.Value).ToArray)
       sender.Rows.Remove(sender.Rows(e.RowIndex))
       DataGridView2.DataSource = dt2
       Call updateDatebase()
   End Sub
#End Region

   ' الطر يقه الثالثه
#Region " طريقت سحب سطر من الجدول الاول واسقاطه على الجدول الثاني "
   Private Sub DataGridView1_DragOver(ByVal sender As Object, ByVal e As DragEventArgs) Handles DataGridView1.DragOver
       e.Effect = DragDropEffects.Move
   End Sub

   Private Sub DataGridView1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles DataGridView1.MouseMove
       If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
           If sender.CurrentRow.Index = If(sender.AllowUserToAddRows, sender.Rows.Count - 1, sender.Rows.Count) Then Return
           sender.DoDragDrop(sender.Rows(sender.CurrentRow.Index), DragDropEffects.Move)
       End If
   End Sub

   Private Sub DataGridView2_DragOver(ByVal sender As Object, ByVal e As DragEventArgs) Handles DataGridView2.DragOver
       e.Effect = DragDropEffects.Move
   End Sub

   Private Sub DataGridView2_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles DataGridView2.DragDrop
       If (e.Effect = DragDropEffects.Move) Then
           Dim row As DataGridViewRow = e.Data.GetData(GetType(DataGridViewRow))
           dt2.Rows.Add((From cels In row.Cells Select cels.Value).ToArray)
           DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
           Call updateDatebase()
       End If
   End Sub
#End Region

End Class


موفقين

وعليكم السلام ورحمة الله وبركاته 
جزاكـ الله خير اخي وباركـ الله فيكـ 
وجعله الله في موازين حسناتكـ وفقكـ الله 
الصراحة لا احي استخدام DataGridView    Blush  
استخدم التيكست بوكس 
حفظكـ الله

(05-09-15, 07:07 AM)khodor1985 كتب : السلام عليكم ورحمة الله وبركاته
أخي العزيز الطالب، أشكرك جزيلا على هذا المجهود وأنا معجب جدا بطريقة تفكيرك في الأمور، أرجو أخي العزيز أن تضع هذه الطرق الثلاث في مثال لكي تعم الفائدة، والأخ مبرمج أحب إصراره المستمر والمتواصل للوصول إلى الغاية.
أخي العزيز مبرمج المثال عندي شغال التمام التمام، ولقد وضعت إجراء الحفظ في الحدث FormClosed ، أي عند الإغلاق سينفذ إجراء الحفظ، أما بالنسبة لتغيير إسم أحد الأعمدة بعد عملية النقل هلا أوضحت ما الفائدة من ذلك؟
ولا تنسى أيضا أن تنفذ فكرة الأخ طالب فهي أيضا ممتازة، ولو طريقة واحدة من الثلاث طرق، فالقاعدة تقول "أعلم الناس من جمع علوم الناس إلى علمه.

أتمنى لك التوفيق

وعليكم السلام ورحمة الله وبركاته 
اسف لم انتبة الى كود الاغلاق سوف اعمل على تجربة باركـ الله فيكـ وجزاكـ الله خير 
اما بخصوص تغير اسم المحتوى في احد الاعمدة حفظكـ الله وليس تغير اسم العمود فمثلاً لدينا عمود باسم Address ولدينا سجل قيمة محتوى الAddress هي مثلاً Al Madena اريد تغيرها الى Makka مثلاً 
الغاية منها 
افكر بعمل برنامج لطلاب فمثلاً الطالب كان في الصف الاول وانتقل للصف الثاني عند نقل السجل اريد ان تتغير محتوى الصف من الاول الى الثاني وكذلك السنة الدراسية من 2014-2015 الى 2015-2016 
هذه غايتي حفظكـ الله وجزاكـ الله خير
الرد }}}
تم الشكر بواسطة: أبو عمر , khodor1985 , khodor1985 , الطالب
#22
ذكرتني ببرنامج معارف الله يسعدك
:-)
سبحان الله والحمدلله ولا إله إلا الله والله أكبر
 اللهم اغْفِرْ لِلمؤمنين والمؤمنات والمسلمين والمسلمات الأحياء منهم والأموات
الرد }}}
تم الشكر بواسطة: مبرمج بلا حدود , الطالب
#23
(05-09-15, 04:31 PM)أبو عمر كتب : ذكرتني ببرنامج معارف الله يسعدك
:-)

السلام عليكم ورحمة الله وبركاته 
العفو استاذ 
هل يوجد برنامج اسمه معارف قصدكـ حتى اذا يوجد واحد يتعلم منه 
او تقصد معارف يعني احد اقربائكـ  Sleepy
حفظكـ الله
الرد }}}
تم الشكر بواسطة: الطالب
#24
السلام عليكم ورحمة الله وبركاته
ان سمح لي الاساتذة حفظكم الله
ان اطلب كيف يتم نقل كل السجلات دفعه واحدة ؟
وفقكـ الله واثابكم خيراً
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استعلام يرجع اسماء الاعمدة و نوع البيانات في جدول معين بسام محمدغانم 0 964 23-10-21, 01:43 AM
آخر رد: بسام محمدغانم
  [سؤال] نقل البيانات من جدول إلى أخر SQL Server 2008 semsemalex 7 14,784 19-04-20, 12:00 AM
آخر رد: essamprog2020
  كود حذف صورة من جدول اكسس samira20 1 1,788 05-07-19, 07:50 PM
آخر رد: elgokr
Information [سؤال] انشاء قاعدة بيانات access واضافة جدول وحقول بكود vb.net fefooo29 4 7,943 10-06-19, 09:31 PM
آخر رد: sherf
  استدعاء بيانات من اكثر من جدول المتألق9 1 2,430 04-06-19, 10:29 PM
آخر رد: احمد نعمة السلامي
  عرض اسم عميلين في جدول العملاء بشرط ارقامهم بجدول اخر يونس علي 1 1,601 26-04-19, 03:16 AM
آخر رد: محمد كريّم
  كود تصفير عمود في جدول اكسس samira20 1 2,481 31-03-19, 09:02 PM
آخر رد: بدري
  كود حذف سجل من جدول مرتبط مع جدول آخر samira20 3 3,009 28-03-19, 01:45 PM
آخر رد: Amir_Alzubidy
  كيفية استرجاع جدول محدوف المتألق9 0 1,476 11-07-18, 08:34 PM
آخر رد: المتألق9
  [SQL] انشاء جدول جديد من عدة جداول ابو ملاك الخبير 0 2,273 07-03-18, 02:46 AM
آخر رد: ابو ملاك الخبير

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


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