Cách so sánh 2 datatable trong vb.net

Các mẹo vặt linh tinh không thuộc các nhóm trên

Các điều hành viên: tungcan5diop, QUANITGROBEST

Đăng trả lời
ngocvinh
Guru
Guru
Bài viết: 703
Ngày tham gia: Thứ 4 23/04/2008 8:14 am
Đến từ: Biên Hòa Đồng Nai
Been thanked: 111 times

Cách so sánh 2 datatable trong vb.net

Gửi bài by ngocvinh »

Thủ thuật: Cách so sánh 2 datatable trong vb.net
Tác giả: ngocvinh
Mô tả: Cách so sánh 2 datatable trong vb.net
Mở data fill vào 2 table bằng Opendialog
  1.    Dim con, con1 As OleDb.OleDbConnection
  2.  
  3.     Dim cmd2 As New OleDb.OleDbCommand()
  4.     Dim cmd1 As New OleDb.OleDbCommand()
  5.     Dim cmd3 As New OleDb.OleDbCommand()
  6.  
  7.     Dim TB1 As New DataTable
  8.     Dim TB2 As New DataTable
  9.     Dim TB3 As New DataTable
  10.  
  11.     Dim ds1 As New DataSet
  12.     Dim ds2 As New DataSet
  13.     Dim ds3 As New DataSet
  14.  
  15.  
  16.     Dim Dts As New DataSet
  17.     Dim da1 As New OleDbDataAdapter()
  18.     Dim da2 As New OleDbDataAdapter()
  19.     Dim da3 As New OleDbDataAdapter()
  20.  
  21. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  22.         Try
  23.  
  24.             TB2.Clear()
  25.             OpenFileDialog2.Filter = "Access (*.mdb)|*.mdb"
  26.             OpenFileDialog2.ShowDialog()
  27.             TextBox2.Text = OpenFileDialog2.FileName
  28.             Dim str1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = '" & TextBox2.Text & "';Persist Security Info=False"
  29.             con1 = New OleDb.OleDbConnection(str1)
  30.             con1.Open()
  31.             cmd2.Connection = con1
  32.             cmd2.CommandType = CommandType.Text
  33.             ' cmd.CommandText = "SELECT * From Nhanvien "
  34.             da2.SelectCommand = cmd2
  35.             da2.Fill(TB2)
  36.          
  37.  
  38.         Catch ex As Exception
  39.             MsgBox(ex.Message)
  40.         End Try
  41.     End Sub
  42.   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  43.         Try
  44.             TB1.Clear()
  45.             OpenFileDialog1.Filter = "Access (*.mdb)|*.mdb"
  46.             OpenFileDialog1.ShowDialog()
  47.             TextBox1.Text = OpenFileDialog1.FileName
  48.  
  49.             ' ----- Open the source file using XPath.
  50.             Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = '" & TextBox1.Text & "';Persist Security Info=False"
  51.             con = New OleDb.OleDbConnection(str)
  52.             con.Open()
  53.             cmd1.Connection = con
  54.             cmd1.CommandType = CommandType.Text
  55.             cmd1.CommandText = "SELECT * From Nhanvien"
  56.             da1.SelectCommand = cmd1
  57.             da1.Fill(TB1)
  58.             da1.Fill(ds1)
  59.         Catch ex As Exception
  60.             MsgBox(ex.Message)
  61.         End Try
  62.     End Sub
  63.  
  64. [/code]
  65. So sánh 2 DataTable TB1 và TB2 ,TB3 copy từ TB1 , xóa những dòng trùng nhau từ TB3 còn lại là những dòng khác nhau  
  66. Mã Chọn tất cả Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  67.  
  68.         Try
  69.             If TB1.Rows.Count < 2 Or TB2.Rows.Count < 2 Then
  70.                 MsgBox("Bạn chưa chọn đủ 2 File cần so sánh ")
  71.                 Exit Sub
  72.             End If
  73.             TB3.Clear()
  74.             TB3 = TB1.Copy
  75.             For i As Integer = 0 To TB1.Rows.Count - 1   'go all record TB1
  76.                 For j As Integer = 0 To TB2.Rows.Count - 1 'go all record TB2
  77.                     If TB1.Rows(i)("MaNV") = TB2.Rows(j)("MaNV")
  78.                         TB3.Rows(i).Delete()
  79.                     End If
  80.                 Next j
  81.             Next i
  82.            
  83.            
  84.           gridview1.datasource = TB3
  85.            
  86.  
  87.  
  88.         Catch ex As Exception
  89.             MsgBox(ex.Message)
  90.         End Try
  91.  
  92.     End Sub
.NET