Files
Doku/Dokumentation/Administration/CSVImportieren.vb
2018-11-22 16:52:25 +01:00

267 lines
10 KiB
VB.net

Imports System.IO
Imports System.Data.SqlClient
Public Class CSVImportieren
Public cmd As New SqlCommand
Public reader As SqlDataReader
Public importdatei As String
Public con As New SqlConnection
Public Senderstandort As String
Public SenderNetzwerk As String
Public SenderAllgemein As String
Private Sub CSVImportieren_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dbload()
lblinfo_standard()
End Sub
Public Function dbload()
con.ConnectionString = Class1.DBConString
cmd.Connection = con
End Function
Private Sub CmdQuelle_Click(sender As Object, e As EventArgs) Handles CmdQuelle.Click
Dim openfiledialog As New OpenFileDialog
openfiledialog.InitialDirectory = "C:\Verag"
openfiledialog.DefaultExt = ".csv"
openfiledialog.Filter = "CSV files (*.csv)|*.CSV"
openfiledialog.ShowDialog()
importdatei = openfiledialog.FileName
LblQuelle.Text = importdatei
loadcsv()
End Sub
Private Function lblinfo_standard()
LblInfo.Text = "FQDN" & vbCrLf &
"QINFO" & vbCrLf &
"IPAdresse" & vbCrLf &
"NETNAME" & vbCrLf &
"Seriennummer" & vbCrLf &
"MAC" & vbCrLf &
"Benutzer" & vbCrLf &
"Passwort" & vbCrLf &
"LINK" & vbCrLf &
"INFO" & vbCrLf &
"TYPE" & vbCrLf &
"HOST" & vbCrLf &
"NWSTANDORT" & vbCrLf &
"Modell" & vbCrLf &
"Linked" & vbCrLf &
"LinkedWith" & vbCrLf &
"AddIP"
End Function
Private Function loadcsv()
Try
Dim testsr As New StreamReader(importdatei)
Catch
MsgBox("Keine Datei angegben!")
Exit Function
End Try
Dim sr As New StreamReader(importdatei)
Dim dt As New DataTable
dt.CaseSensitive = False
Dim newline() As String = sr.ReadLine.Split(";")
Dim itemarraystring As Object = ""
Dim zeile As String
Dim zeilevbcrlf As String
Dim felder() As String
Dim i As Integer
Try
i = 0
While sr.EndOfStream = False
dt.Columns.AddRange({New DataColumn(newline(i))})
i = i + 1
End While
'Do While i <= (Num.Value - 1)
' dt.Columns.AddRange({New DataColumn(newline(i))})
' i = i + 1
'Loop
Catch exkopfzeile As Exception
'MsgBox("Kopfzeile: " & i & vbCrLf & exkopfzeile.Message)
End Try
Try
While (Not sr.EndOfStream)
zeile = sr.ReadLine
zeilevbcrlf = Replace(zeile, "##vbCrLf##", vbCrLf)
felder = zeilevbcrlf.Split(";")
Dim dr As DataRow = dt.NewRow
dr.ItemArray = felder
dt.Rows.Add(dr)
End While
Catch exInhalt As Exception
'MsgBox("Inhalt: " & exInhalt.Message)
End Try
dgvImport.DataSource = dt
sr.Close()
FileClose()
End Function
Public Function IPbereitsvorhanden(Ip As String)
con.Open()
cmd.CommandText = "SELECT * FROM TbL_Netzwerkclients WHERE IPAdresse='" & Ip & "'"
cmd.ExecuteNonQuery()
reader = cmd.ExecuteReader()
If reader.Read Then
con.Close()
Return (True)
'MsgBox(Ip & " bereits vorhanden")
Else
con.Close()
Return (False)
'MsgBox(Ip & " noch nicht vorhanden")
End If
con.Close()
End Function
Public Function Import()
Dim FQDN As String = ""
Dim QINFO As String = ""
Dim IPAdresse As String = ""
Dim NETNAME As String = ""
Dim Seriennummer As String = ""
Dim MAC As String = ""
Dim Benutzer As String = ""
Dim Passwort As String = ""
Dim LINK As String = ""
Dim INFO As String = ""
Dim TYPE As String = ""
Dim HOST As Integer
Dim NWSTANDORT As String = ""
Dim Modell As String = ""
Dim Linked As Integer
Dim LinkedWith As String = ""
Dim AddIP As String = ""
Dim Standort As String = ""
Try
For r As Integer = 0 To dgvImport.Rows.Count - 2
FQDN = dgvImport.Rows(r).Cells("FQDN").Value.ToString
' MsgBox(Count(FQDN))
If Count(FQDN) > 40 Then
FQDN = FQDN.Substring(0, 40)
End If
QINFO = dgvImport.Rows(r).Cells("QINFO").Value.ToString
IPAdresse = dgvImport.Rows(r).Cells("IPAdresse").Value.ToString
NETNAME = dgvImport.Rows(r).Cells("NETNAME").Value.ToString
Seriennummer = dgvImport.Rows(r).Cells("Seriennummer").Value.ToString
MAC = dgvImport.Rows(r).Cells("MAC").Value.ToString
'Benutzer = dgvImport.Rows(r).Cells("Benutzer").Value.ToString
'Passwort = dgvImport.Rows(r).Cells("Passwort").Value.ToString
'LINK = dgvImport.Rows(r).Cells("LINK").Value.ToString
'INFO = dgvImport.Rows(r).Cells("INFO").Value.ToString
' TYPE = dgvImport.Rows(r).Cells("TYPE").Value.ToString
NWSTANDORT = dgvImport.Rows(r).Cells("NWSTANDORT").Value.ToString
' Modell = dgvImport.Rows(r).Cells("Modell").Value.ToString
'LinkedWith = dgvImport.Rows(r).Cells("LinkedWith").Value.ToString
'AddIP = dgvImport.Rows(r).Cells("AddIP").Value.ToString
HOST = dgvImport.Rows(r).Cells("HOST").Value
'Linked = dgvImport.Rows(r).Cells("Linked").Value
Try
Standort = dgvImport.Rows(r).Cells("Standort").Value.ToString
If Count(Standort) > 40 Then
Standort = Standort.Substring(0, 40)
End If
Catch ex As Exception
Standort = ""
End Try
Try
' Dim SQLUpdate As String = "FQDN = '" & FQDN & "', QINFO = '" & QINFO & "', NETNAME = '" & NETNAME & "', STANDORT = '" & Standort & "', Seriennummer = '" & Seriennummer & "', MAC = '" & MAC & "', Benutzer = '" & Benutzer & "', Passwort = '" & Passwort & "', LINK = '" & LINK & "', INFO = '" & INFO & "', TYPE = '" & TYPE & "', HOST = '" & HOST & "', NWSTANDORT = '" & NWSTANDORT & "', Modell = '" & Modell & "', Linked = '" & Linked & "', LinkedWith = '" & LinkedWith & "', AddIP = '" & AddIP & "' WHERE IPAdresse = '" & IPAdresse & "'"
Dim SQLUpdate As String = "FQDN = '" & FQDN & "', QINFO = '" & QINFO & "', NETNAME = '" & NETNAME & "', STANDORT = '" & Standort & "', Seriennummer = '" & Seriennummer & "', MAC = '" & MAC & "', HOST = '" & HOST & "', NWSTANDORT = '" & NWSTANDORT & "' WHERE IPAdresse = '" & IPAdresse & "'"
If ChkSkip.Checked = False Then
If IPbereitsvorhanden(IPAdresse) = True Then
con.Open()
cmd.CommandText = "Update Tbl_Netzwerkclients SET " & SQLUpdate & ""
cmd.ExecuteNonQuery()
con.Close()
ElseIf IPbereitsvorhanden(IPAdresse) = False Then
con.Open()
cmd.CommandText = "INSERT INTO Tbl_Netzwerkclients (IPAdresse, Host, Info, Linked) VALUES ('" & IPAdresse & "', '" & HOST & "', 'Importiert aus CSV', '0')"
cmd.ExecuteNonQuery()
'cmd.CommandText = "UPDATE Tbl_Netzwerkclients SET QINFO = 'Test' WHERE IPAdresse = '" & IPAdresse & "'"
cmd.CommandText = "Update Tbl_Netzwerkclients SET " & SQLUpdate & ""
cmd.ExecuteNonQuery()
con.Close()
End If
ElseIf ChkSkip.Checked = True Then
If IPbereitsvorhanden(IPAdresse) = True Then
ElseIf IPbereitsvorhanden(IPAdresse) = False Then
con.Open()
cmd.CommandText = "INSERT INTO Tbl_Netzwerkclients (IPAdresse, Host) VALUES ('" & IPAdresse & "', '" & HOST & "')"
cmd.ExecuteNonQuery()
cmd.CommandText = "Update Tbl_Netzwerkclients SET " & SQLUpdate & ""
cmd.ExecuteNonQuery()
con.Close()
End If
End If
Catch ex As Exception
MsgBox("Import: " & ex.Message)
con.Close()
End Try
Next
Catch ex As Exception
MsgBox("Import Variablen definieren: " & ex.Message)
con.Close()
End Try
con.Close()
Try
con.Open()
cmd.CommandText = "UPDATE Tbl_Netzwerkclients SET STANDORT='' WHERE STANDORT IS NULL"
cmd.ExecuteNonQuery()
cmd.CommandText = "UPDATE Tbl_Netzwerkclients SET MODELL='' WHERE MODELL IS NULL"
cmd.ExecuteNonQuery()
cmd.CommandText = "UPDATE Tbl_Netzwerkclients SET TYPE='' WHERE TYPE IS NULL"
cmd.ExecuteNonQuery()
con.Close()
Catch ex As Exception
End Try
End Function
Private Function Count(Strrrring As String)
Dim co As Integer = 0
For Each ch As Char In Strrrring
co = co + 1
Next
Return co
End Function
Private Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click
End Sub
Private Sub CmdImport_Click(sender As Object, e As EventArgs) Handles CmdImport.Click
If ChkSkip.Checked = True Then
If MsgBox("Importieren?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
Import()
Else
Exit Sub
End If
ElseIf ChkSkip.Checked = False Then
If MsgBox("Importieren? Bestehende Datensätze werden mit Importdatei überschrieben!" & vbCrLf & "Wenn dies nicht gewünscht ist, bitte Häkchen setzen...", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
Import()
Else
Exit Sub
End If
End If
End Sub
End Class