267 lines
10 KiB
VB.net
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 |