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