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

هذه دالة قديمة قد تفيدك

منقول

دالة نسخ بيانات عمود واحد من جدول إلى أخر بنفس الإسم والنوع والحجم مع عدم التكرار
كود :
' دالة نسخ بيانات عمود واحد من جدول إلى أخر بنفس الإسم والنوع والحجم مع عدم التكرار
Public Sub CopyOneColumnFromTableToAnother(connectionString As String, table1 As String, column As String, table2 As String)
    Try

        ' إنشاء الإتصال بقاعدة البيانات
        Using cnn As New OleDbConnection(connectionString)

            ' فتح الإتصال بقاعدة البيانات
            cnn.Open()

            ' جدول مؤقت
            Using dt As New DataTable

                ' نسخ العمود من الجدول الأصل
                Using comm1 As New OleDb.OleDbCommand(" SELECT [" & column & "] FROM [" & table1 & "] ", cnn)

                    ' تعبئة الجدول المؤقت ببيانات العمود من الجدول الأصل
                    dt.Load(comm1.ExecuteReader)

                    ' حلقة المرور على الأسطر
                    For Each row As DataRow In dt.Rows

                        ' الاستعلام في وجود القيمة في الجدول الثاني
                        Using comm2 As New OleDbCommand("SELECT COUNT([" & column & "]) FROM [" & table2 & "] WHERE [" & column & "]=@column ", cnn)

                            ' لابد من مسح البارامترات لتعبئته لبيانات جديدة
                            comm2.Parameters.Clear()

                            ' تمرير البيانات من البيامترات إلى جملة الإستعلام
                            comm2.Parameters.AddWithValue("@column", row(column))

                            ' إذا لم يجد القيمة في الجدول الثاني
                            If comm2.ExecuteScalar = 0 Then

                                ' إضافة السطر إلى الجدول الثاني
                                comm1.CommandText = " INSERT INTO [" & table2 & "] ( [" & column & "] ) VALUES ( @column ) "

                                ' لابد من مسح البارامترات لتعبئته لبيانات جديدة
                                comm1.Parameters.Clear()

                                ' تمرير البيانات من البيامترات إلى جملة الإضافة
                                comm1.Parameters.AddWithValue("@column", row(column))

                                ' تنفيذ أمر الإضافة
                                comm1.ExecuteNonQuery()

                            End If

                        End Using
                    Next

                End Using

                ' غلق الإتصال بقاعدة البيانات
                cnn.Close()

            End Using
        End Using

    Catch ex As Exception
        ' عرض رسالة بالخطأ الحاصل إن وجد
        MsgBox(ex.Message)
    End Try
End Sub

طريقة استخدام الدالة
كود :
Public connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|database1.accdb"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    CopyOneColumnFromTableToAnother(connectionString, "table1", "column4", "table2")
End Sub

.....
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
تصحيح الاستعلام - بواسطة محاسب يوسف - 15-08-14, 09:27 AM
RE: تصحيح الاستعلام - بواسطة سعود - 17-08-14, 11:37 PM
RE: تصحيح الاستعلام - بواسطة محاسب يوسف - 18-08-14, 09:49 AM
RE: تصحيح الاستعلام - بواسطة vbnet - 18-08-14, 01:19 PM
RE: تصحيح الاستعلام - بواسطة محاسب يوسف - 18-08-14, 02:41 PM


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


يقوم بقرائة الموضوع: