导入CSV文件并读取特定行VB.NET ASPX ASP.NET SQL数据表

导入CSV文件并读取特定行VB.NET ASPX ASP.NET SQL数据表,asp.net,vb.net,datatable,Asp.net,Vb.net,Datatable,本质上,我想导入一个csv文件,其中包含应该存储在datatable中的数据,然后导入SQL。我还想检查在导入到datatable之前是否将所有必需的列输入到csv文件中 我该怎么做呢 感谢您将所有行读入变量,如果您有一个头作为CSV的第一行,请解析它并创建datatable列,接下来您可以简单地将新行添加到datatable中。 如果需要,请指定分隔符 Dim FileToExtract as FileInfo = nothing; 'load a file info Dim CSVD

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

我该怎么做呢


感谢您将所有行读入变量,如果您有一个头作为CSV的第一行,请解析它并创建datatable列,接下来您可以简单地将新行添加到datatable中。 如果需要,请指定分隔符

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
Dim FileToExtract as FileInfo=nothing;'加载文件信息
Dim CSVDivider As String=“;”
Dim EncodingType As Encoding=无
Dim lines=File.ReadAllLines(FileToExtract.FullName,If(EncodingType为Nothing,Encoding.GetEncoding(“utf-8”),EncodingType))
Dim cols As String()=(新正则表达式(CSVDivider)).Split(lines.First)
对于i,整数=0到cols.Length-1
添加(新数据列(If(CSVTrim“”,cols(i).Trim(CSVTrim),cols(i)),If(dtcolumnsype不是空,dtcolumnsype.Item(cols(i).Trim(CSVTrim)),GetType(String)))
下一个
每行中的每一行。跳过(1)
Dim objFields=来自(新正则表达式(CSVDivider))中的字段。拆分(行)
选择如果(CSVTrim“”,字段。修剪(CSVTrim),字段)
Dim newRow=dt.Rows.Add()
newRow.ItemArray=objFields.ToArray()
下一个

请注意StackOverflow不是编码服务。