هلا بيك
ثلاث ايام انتظر رايك
على كل حال مافهمت الجزئية التي تخص الاختلاف! كتبت المثال بناء على مافهمته من الموضوع.
ممكن فضلا .. ان تبين بشكل اكثر المقصود بــ
اولا اشكرك علي اهتمامك
ثانيا انا احيانا ادخل سريع علي الموقع لان هذه الايام ايام امتحانات
لكن عندما اضع الموضوع اتابعه لاني اكون محتاجه جدا جدا
ثالثا : انا اريد عندي جدولين لهم نفس الحقول
ارغب في اضافة السجلات المختلفة من الجدول الاول الي الثاني
اي
يتم مقارنة السجلات في الجدول الاول بالسجلات في الجدول الثاني
ويتم اضافة المختلف فقط
حضرتك اظهرت الاختلاف في الجريد
لكن كيف اضيف المختلف ؟؟؟
إقتباس :حضرتك اظهرت الاختلاف في الجريد
لكن كيف اضيف المختلف ؟؟؟
اللي استخدمته كود حفظ محتويات الجدول الاول الى الثاني من غير شروط.
لكن يبدو ان الفكرة صارت اوضح من قبل واظن اننا بحاجة لجدول ثالث لاضافة المختلف بين الجدولين.
شوف!
اضف ثلاث جداول كل جدول به عمود باسم tn نصي
اضف للجدول الاول والثاني قيم مكررة واخرى فريدة اي بجدول واحد فقط
ثم انظر لهذا الكلاس
PHP كود :
Imports System.Data.OleDb
Public Class Form1 Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\db.accdb" Dim con As New OleDbConnection(str) Dim ds As New DataSet
Private Sub gd() If con.State = ConnectionState.Open Then con.Close() End If ds.Clear() d1.DataSource = Nothing d2.DataSource = Nothing d3.DataSource = Nothing
Dim da1 As New OleDbDataAdapter("select * from tb1", con) Dim da2 As New OleDbDataAdapter("select * from tb2", con) Dim da3 As New OleDbDataAdapter("select * from tb3", con)
Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If con.State = ConnectionState.Open Then con.Close() End If End Sub Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load gd() End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim cm As New OleDbCommand("select tn from tb1", con) If con.State = ConnectionState.Closed Then con.Open() End If Dim dr As OleDbDataReader = cm.ExecuteReader While dr.Read Dim sql As New OleDbCommand("select tn from tb2 where tn='" & dr.Item("tn") & "'", con) If con.State = ConnectionState.Closed Then con.Open() End If Dim dr2 As OleDbDataReader = sql.ExecuteReader If dr2.Read = False Then Dim ins As New OleDbCommand("insert into tb3 (tn) values(@tn)", con) ins.Parameters.AddWithValue("@tn", dr.Item("tn")) If con.State = ConnectionState.Closed Then con.Open() End If ins.ExecuteNonQuery() End If End While gd() End Sub End Class
المثال مرفق وهو يقوم بفحص سجلات الجدول الاول ويقارنها بسجلات الجدول الثاني وان وجد سجلا في الاول وغير موجود في الثاني يضيفه للجدول الثالث