【问题标题】:Importing a CSV file and reading specific lines VB.NET ASPX ASP.NET SQL DATATABLE导入 CSV 文件并读取特定行 VB.NET ASPX ASP.NET SQL DATATABLE
【发布时间】:2021-08-06 15:03:02
【问题描述】:

本质上,我想导入一个 csv 文件,其中包含应存储在数据表中的数据,然后将其存储到 SQL 中。我还想在导入数据表之前检查所有必需的列是否已输入到 csv 文件中

我该怎么做呢?

谢谢

【问题讨论】:

  • 请注意 StackOverflow 不是编码服务。

标签: asp.net vb.net datatable


【解决方案1】:

将所有行读入变量,如果你有一个标题作为 CSV 的第一行,解析它并创建数据表列,接下来你可以简单地将新行添加到数据表中。 如果需要,请指定分隔线。

Dim FileToExtract as FileInfo = nothing; 'load a file info    
Dim CSVDivider As String = ";"
Dim EncodingType As Encoding = Nothing
Dim lines = File.ReadAllLines(FileToExtract.FullName, If(EncodingType Is Nothing, Encoding.GetEncoding("utf-8"), EncodingType))
Dim cols As String() = (New Regex(CSVDivider)).Split(lines.First)
             
For i As integer = 0 To cols.Length - 1
    dt.Columns.Add(New DataColumn(If(CSVTrim <> "", cols(i).Trim(CSVTrim), cols(i)), If(dtColumnsType IsNot Nothing, dtColumnsType.Item(cols(i).Trim(CSVTrim)), GetType(String))))
Next
        
For Each line In lines.Skip(1)
    Dim objFields = From field In (New Regex(CSVDivider)).Split(line)
                    Select If(CSVTrim <> "", field.Trim(CSVTrim), field)
    Dim newRow = dt.Rows.Add()
    newRow.ItemArray = objFields.ToArray()
Next

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多