导入CSV文件OLEDB C#

问题描述:

你好,请谁能给我解决了这个问题,我一直在使用C#导入CSV文件,但我在这个截图 Screen导入CSV文件OLEDB C#

单独betwenn列这方面的问题“”但在数据中有一个行包含“

+1

请阅读[帮助],特别是[问] – Steve

Mohamed,我看不到你的截图,但可以指向你的泛型列表并创建一个类来表示数据,你需要添加来自”Project“菜单的引用。

  • Microsof t.VisualBasic
  • System.Configuration
  • WindowsBase

我包括一小段代码代码,我就是这么做的:

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.VisualBasic.FileIO; 

namespace CsvToListExp 
{ 
class Program 
{ 
    public static void Main(string[] args) 
    { 
     // HARD_CODED FOR EXAMPLE ONLY - TO BE RETRIEVED FROM APP.CONFIG IN REAL PROGRAM 
     string hospPath = @"C:\\events\\inbound\\OBLEN_COB_Active_Inv_Advi_Daily_.csv"; 
     string vendPath = @"C:\\events\\outbound\\Advi_OBlen_Active_Inv_Ack_Daily_.csv"; 

     List<DenialRecord> hospList = new List<DenialRecord>(); 
     List<DenialRecord> vendList = new List<DenialRecord>(); 
     //List<DenialRecord> hospExcpt = new List<DenialRecord>(); // Created at point of use for now 
     //List<DenialRecord> vendExcpt = new List<DenialRecord>(); // Created at point of use for now 

     using (TextFieldParser hospParser = new Microsoft.VisualBasic.FileIO.TextFieldParser(hospPath)) 
     { 
      hospParser.TextFieldType = FieldType.Delimited; 
      hospParser.SetDelimiters(","); 
      hospParser.HasFieldsEnclosedInQuotes = false; 
      hospParser.TrimWhiteSpace = true; 

      while (!hospParser.EndOfData) 
      { 

       try 
       { 
        string[] row = hospParser.ReadFields(); 
        if (row.Length <= 7) 
        { 
         DenialRecord dr = new DenialRecord(row[0], row[1], row[2], row[3], row[4], row[5], row[6]); 
         hospList.Add(dr); 
        } 
       } 
       catch (Exception e) 
       { 
        // do something 
        Console.WriteLine("Error is: {0}", e.ToString()); 
       } 
      } 
      hospParser.Close(); 
      hospParser.Dispose(); 
     } 


     using (TextFieldParser vendParser = new Microsoft.VisualBasic.FileIO.TextFieldParser(vendPath)) 
     { 
      vendParser.TextFieldType = FieldType.Delimited; 
      vendParser.SetDelimiters(","); 
      vendParser.HasFieldsEnclosedInQuotes = false; 
      vendParser.TrimWhiteSpace = true; 

      while (!vendParser.EndOfData) 
      { 
       try 
       { 
        string[] row = vendParser.ReadFields(); 
        if (row.Length <= 7) 
        { 
         DenialRecord dr = new DenialRecord(row[0], row[1], row[2], row[3], row[4], row[5], row[6]); 
         vendList.Add(dr); 
        } 
       } 
       catch (Exception e) 
       { 
        // do something 
        Console.WriteLine("Error is: {0}", e.ToString()); 
       } 
      } 
      vendParser.Close(); 
      vendParser.Dispose(); 
     } 

     // Compare the lists each way for denials not in the other source 
     List<DenialRecord> hospExcpt = hospList.Except(vendList).ToList(); 
     List<DenialRecord> vendExcpt = vendList.Except(hospList).ToList(); 
    } 
} 
} 

谷歌TestFieldParser,并期待在方法,属性和构造函数。这是非常灵活的,但由于它经过的层,运行缓慢。它能够设置分隔符,处理用引号括起来的字段,修剪空白等等。

+0

我的问题是由CSV文件分组,并且不能使用LINQ,因为我使用框架2.0 –