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.

163 lines
6.7 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
Dim dtm As New DataTable
Dim drm As DataRow
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 recfound As Boolean = False
Dim mutiert As Boolean = False
Dim appname As String
dtm.Columns.Clear()
dtm.Columns.Add("Type")
dtm.Columns.Add("Applikation")
dtm.Columns.Add("Spalte")
dtm.Columns.Add("Alt")
dtm.Columns.Add("Neu")
' Destdataset.Tables(0).Clear()
' Destdataset.Tables.Add(Sourcedataset.Tables(0).Copy)
'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
drm = dtm.NewRow
drm.Item(0) = 3
drm.Item(1) = ddr.Item(0).ToString
drm.Item(2) = Sourcedataset.Tables(0).Columns(i).ColumnName
drm.Item(3) = ddr.Item(Sourcedataset.Tables(0).Columns(i).ColumnName).ToString
drm.Item(4) = sdr.Item(Sourcedataset.Tables(0).Columns(i).ColumnName)
dtm.Rows.Add(drm)
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
End If
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
drm = dtm.NewRow
drm.Item(0) = 1
drm.Item(1) = xx.Item(0).ToString
drm.Item(2) = ""
drm.Item(3) = ""
drm.Item(4) = ""
dtm.Rows.Add(drm)
Destdataset.Tables(0).Rows.Add(xx)
AnzNeu = AnzNeu + 1
End If
Next
For Each ddr As DataRow In Destdataset.Tables(0).Rows
recfound = False
For Each sdr As DataRow In Sourcedataset.Tables(0).Rows
appname = ddr.Item(0).ToString
If ddr.Item("applikationnr") = sdr.Item("Applikationnr") Then recfound = True
Next
If Not recfound Then
ddr.Delete()
drm = dtm.NewRow
drm.Item(0) = 2
drm.Item(1) = appname
drm.Item(2) = ""
drm.Item(3) = ""
drm.Item(4) = ""
dtm.Rows.Add(drm)
AnzGel<EFBFBD>scht = AnzGel<EFBFBD>scht + 1
End If
Next
Dim ff As New frmApplAbgleichCheckMessage
ff.lblAnzahlGeloescht.Text = AnzGel<EFBFBD>scht
ff.lblAnzahlMutiert.Text = AnzMutiert
ff.lblAnzahlNeu.Text = AnzNeu
ff.dtm = dtm
ff.ShowDialog()
If ff.DialogResult = Windows.Forms.DialogResult.OK Then
If Destdataset.HasChanges Then
Destdataadapter.Update(Destdataset.GetChanges, "DestTable")
Destdataset.AcceptChanges()
End If
End If
If ff.DialogResult = Windows.Forms.DialogResult.Cancel Then
Destdataset.RejectChanges()
End If
'MsgBox("Abgleich erfolgreich durchgef<65>hrt:" + vbCrLf + "- Neu: " + AnzNeu.ToString.Trim + vbCrLf + "- Mutiert: " + AnzMutiert.ToString.Trim + vbCrLf + "- Gel<65>scht: " + AnzGel<65>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