且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

无法使用OLEDB从CSV获取所有列的值

更新时间:2023-02-23 13:17:02

您将需要创建schema.ini文件,并将其放置在与您要从中提取数据的文件相同的目录中.在其中,您必须将 TextDelimiter Format 赋予csv文件.将 TextDelimiter 设置为 none

You going to need to create schema.ini file and place it in the same directory as the files you're pulling the data from. In it you will have to give TextDelimiter and Format to the csv file. Set the TextDelimiter to none

[YOURCSVFILENAME.csv]
ColNameHeader=True
Format=CSVDelimited
TextDelimiter=none

希望这会有所帮助.

更新:动态创建schema.ini文件...

UPDATE: Creating schema.ini file dynamically...

  string csvFilePath = /* CSV file directory */
  string csvFileName = /* CSV file name */
  using (FileStream sr = new FileStream(csvFilePath + "\\schema.ini", 
      FileMode.Create, FileAccess.Write)) 
  { 
      using (StreamWriter writer=new StreamWriter(sr)) 
      { 
          writer.WriteLine("[" + csvFileName + "]"); 
          writer.WriteLine("ColNameHeader=True"); 
          writer.WriteLine("Format=CSVDelimited"); 
          writer.WriteLine("TextDelimiter=none"); 
          writer.Close(); 
          writer.Dispose(); 
      } 
  }