Hallo,
ich habe eine Funktion aus dem Web, welche mir eine csv Datei in ein Datagridview einfügen soll. Dies funktioniert ohne Probleme, nur die Ausnahmebehandlung macht mir Ärger.
Wenn ich beim "OpenFileDialog" keine Datei auswähle oder ich auf Abrechen drücke bleibt VisualStudio immer bei "Throw New Exception(String.Format("{0}.CSVToDatatable Error", GetType(System.Windows.Documents.Table).FullName), ex)" hängen und gibt mir an das die Exception nicht behandelt wurde.
Was kann ich tun?
Danke und Gruß
ich habe eine Funktion aus dem Web, welche mir eine csv Datei in ein Datagridview einfügen soll. Dies funktioniert ohne Probleme, nur die Ausnahmebehandlung macht mir Ärger.
Quellcode
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim fName As String = ""
- OpenFileDialog1.InitialDirectory = "d:\"
- OpenFileDialog1.Filter = "CSV files(*.csv)|*.csv | TXT files(*.txt)| *.txt"
- OpenFileDialog1.FilterIndex = 2
- OpenFileDialog1.RestoreDirectory = True
- If (OpenFileDialog1.ShowDialog() = DialogResult.OK) Then
- fName = OpenFileDialog1.FileName
- End If
- TextBox1.Text = fName
- DataGridView1.DataSource = FileToTable(fName, {vbTab}, False)
- End Sub
- Public Shared Function FileToTable(ByVal fileName As String, ByVal separator As String(), isFirstRowHeader As Boolean) As DataTable
- Dim result As DataTable = Nothing
- ' Dim dt As New System.Data.DataTable
- Try
- If Not System.IO.File.Exists(fileName) Then Throw New ArgumentException("fileName", String.Format("The file does not exist : {0}", fileName))
- Dim dt As New System.Data.DataTable
- Dim isFirstLine As Boolean = True
- Using sr As New System.IO.StreamReader(fileName)
- While Not sr.EndOfStream
- Dim data() As String = sr.ReadLine.Split(separator, StringSplitOptions.None)
- If isFirstLine Then
- If isFirstRowHeader Then
- For Each columnName As String In data
- dt.Columns.Add(New DataColumn(columnName, GetType(String)))
- Next
- isFirstLine = True ' Signal that this row is NOT to be considered as data.
- Else
- For i As Integer = 1 To data.Length
- dt.Columns.Add(New DataColumn(String.Format("Column_{0}", i), GetType(String)))
- Next
- isFirstLine = False ' Signal that this row IS to be considered as data.
- End If
- End If
- If Not isFirstLine Then
- dt.Rows.Add(data.ToArray)
- End If
- isFirstLine = False ' All subsequent lines shall be considered as data.
- result = dt.Copy
- End While
- End Using
- Catch ex As Exception
- Throw New Exception(String.Format("{0}.CSVToDatatable Error", GetType(System.Windows.Documents.Table).FullName), ex)
- Return Nothing
- End Try
- Return result
- End Function
Wenn ich beim "OpenFileDialog" keine Datei auswähle oder ich auf Abrechen drücke bleibt VisualStudio immer bei "Throw New Exception(String.Format("{0}.CSVToDatatable Error", GetType(System.Windows.Documents.Table).FullName), ex)" hängen und gibt mir an das die Exception nicht behandelt wurde.
Was kann ich tun?
Danke und Gruß