CsvHelper.CsvRead 不返回任何内容

时间:2021-05-06 04:44:48

标签: c# csvhelper

我第一次使用 CSVHelper。

我有一个像这样的简单 CSV 文件:

a,b,c
1,2,3
4,5,6
7,8,9

当我尝试使用此代码阅读时:

using (var reader = new StreamReader(@"e:\a.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
    // Do any configuration to `CsvReader` before creating CsvDataReader.
    using (var dr = new CsvDataReader(csv))
    {
        var dt = new DataTable();
        dt.Load(dr);
    }
}

csv 不返回任何内容:

{CsvHelper.CsvReader}
    ColumnCount: 0
    Configuration: {CsvConfiguration { AllowComments = False, BadDataFound = CsvHelper.BadDataFound, BufferSize = 4096, CacheFields = False, Comment = #, CountBytes = False, CultureInfo = , Delimiter = ,, DetectDelimiter = False, DetectDelimiterValues = System.String[], DetectColumnCountChanges = False, DynamicPropertySort = , Encoding = System.Text.UTF8Encoding, Escape = ", ExceptionMessagesContainRawData = True, GetConstructor = CsvHelper.GetConstructor, GetDynamicPropertyName = CsvHelper.GetDynamicPropertyName, HasHeaderRecord = True, HeaderValidated = CsvHelper.HeaderValidated, IgnoreBlankLines = True, IgnoreReferences = False, IncludePrivateMembers = False, InjectionCharacters = System.Char[], InjectionEscapeCharacter =  , IsNewLineSet = False, LeaveOpen = False, LineBreakInQuotedFieldIsBadData = False, MemberTypes = Properties, MissingFieldFound = CsvHelper.MissingFieldFound, Mode = RFC4180, NewLine = 
, PrepareHeaderForMatch = CsvHelper.PrepareHeaderForMatch, ProcessFieldBufferSize = 1024, Quote = ", ReadingExceptionOccurred = CsvHelper.ReadingExceptionOccurred, ReferenceHeaderPrefix = , SanitizeForInjection = False, ShouldQuote = CsvHelper.ShouldQuote, ShouldSkipRecord = CsvHelper.ShouldSkipRecord, ShouldUseConstructorParameters = CsvHelper.ShouldUseConstructorParameters, TrimOptions = None, UseNewObjectForNullReferenceMembers = True, WhiteSpaceChars = System.Char[] }}
    Context: {CsvHelper.CsvContext}
    CurrentIndex: -1
    HeaderRecord: null
    Parser: {CsvHelper.CsvParser}

有什么问题?我想不通。

1 个答案:

答案 0 :(得分:2)

测试下面的代码我认为问题是如何用StreamReader

打开文件
using (var streamReader = File.OpenText(path))
{
   using (var csvReader = new CsvReader(streamReader, CultureInfo.CurrentCulture))
   {
       using (var dr = new CsvDataReader(csvReader))
       {
           var dt = new DataTable();
           dt.Load(dr);
       }
   }
}