You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
5.0 KiB

Imports System.IO
Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Public Class frmApplAbgleich
Dim Sourcedataset As New DataSet
Dim Sourcedataadapter As SqlDataAdapter
Dim Sourcesqlconnection As New SqlConnection
Dim SourceCommandBuilder As SqlCommandBuilder
Dim Destdataset As New DataSet
Dim DestConnString As String
Dim DestTablename As String
Dim Destdataadapter As SqlDataAdapter
Dim Destsqlconnection As New SqlConnection
Dim DestCommandBuilder As SqlCommandBuilder
Sub New(ByVal Destination_Connectionstring As String, ByVal Destination_Tablename As String)
Me.InitializeComponent()
DestConnString = Destination_Connectionstring
DestTablename = Destination_Tablename
End Sub
Private Sub frmApplAbgleich_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Destdataadapter = New SqlDataAdapter("Select * from " & DestTablename, Me.Destsqlconnection)
Me.Destsqlconnection.ConnectionString = Me.DestConnString
DestCommandBuilder = New SqlCommandBuilder(Destdataadapter)
Destdataadapter.Fill(Destdataset, "DestTable")
Me.C1Dest.DataSource = Destdataset.Tables(0)
Me.C1Dest.DataMember = Destdataset.Tables(0).TableName
Catch ex As Exception
MsgBox(ex.Message)
End Try
Try
Sourcedataadapter = New SqlDataAdapter("Select * from View_ITSM_TXP_Appl", Me.Sourcesqlconnection)
Me.Sourcesqlconnection.ConnectionString = Globals.sConnectionString
SourceCommandBuilder = New SqlCommandBuilder(Sourcedataadapter)
Sourcedataadapter.Fill(Sourcedataset, "SourceTable")
Me.C1Source.DataSource = Sourcedataset.Tables(0)
Me.C1Source.DataMember = Sourcedataset.Tables(0).TableName
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
Dim i As Integer
Dim AnzNeu As Integer = 0
Dim AnzGel<EFBFBD>scht As Integer = 0
Dim AnzMutiert As Integer = 0
Dim mutiert As Boolean = False
' Destdataset.Tables(0).Clear()
' Destdataset.Tables.Add(Sourcedataset.Tables(0).Copy)
Dim recfound As Boolean = False
For Each ddr As DataRow In Destdataset.Tables(0).Rows
recfound = False
For Each sdr As DataRow In Sourcedataset.Tables(0).Rows
If ddr.Item("applikationnr") = sdr.Item("Applikationnr") Then recfound = True
Next
If Not recfound Then
ddr.Delete()
AnzGel<EFBFBD>scht = AnzGel<EFBFBD>scht + 1
End If
Next
If Destdataset.HasChanges Then
Destdataadapter.Update(Destdataset.GetChanges, "DestTable")
End If
Destdataset.AcceptChanges()
For Each sdr As DataRow In Sourcedataset.Tables(0).Rows
recfound = False
mutiert = False
For Each ddr As DataRow In Destdataset.Tables(0).Rows
If ddr.Item("Applikationnr") = sdr.Item("Applikationnr") Then
For i = 0 To Sourcedataset.Tables(0).Columns.Count - 1
If ddr.Item(Sourcedataset.Tables(0).Columns(i).ColumnName).ToString <> sdr.Item(Sourcedataset.Tables(0).Columns(i).ColumnName).ToString Then
ddr.Item(Sourcedataset.Tables(0).Columns(i).ColumnName) = sdr.Item(Sourcedataset.Tables(0).Columns(i).ColumnName)
mutiert = True
End If
Next
If mutiert Then AnzMutiert = AnzMutiert + 1
recfound = True
End If
Next
If Not recfound Then
Dim xx As DataRow = Destdataset.Tables(0).NewRow
For i = 0 To Sourcedataset.Tables(0).Columns.Count - 1
xx.Item(Sourcedataset.Tables(0).Columns(i).ColumnName) = sdr.Item(Sourcedataset.Tables(0).Columns(i).ColumnName)
Next
Destdataset.Tables(0).Rows.Add(xx)
AnzNeu = AnzNeu + 1
End If
Next
If Destdataset.HasChanges Then
Destdataadapter.Update(Destdataset.GetChanges, "DestTable")
End If
Destdataset.AcceptChanges()
MsgBox("Abgleich erfolgreich durchgef<65>hrt:" + vbCrLf + "- Neu: " + AnzNeu.ToString.Trim + vbCrLf + "- Mutiert: " + AnzMutiert.ToString.Trim + vbCrLf + "- Gel<65>scht: " + AnzGel<EFBFBD>scht.ToString.Trim)
End Sub
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
Me.Close()
End Sub
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
Me.Close()
End Sub
End Class