C# 加载csv文件并保存到sql表中

C# 加载csv文件并保存到sql表中,c#,sql,csv,C#,Sql,Csv,我有csv文件(文件)和如下文件结构: Amount;P_price;Ean;Number;Name;DPH;certifikate;o1;o2;ZC 0;168,00;8806333394584;E1347;MISSHA Gel;21;106;0002;0001;290 0;156,80;8806336488488;E1357;MISSHA Lotion;21;106;0002;0001;271 0;123,20;8806584752571;E1367;MISSHA Mist;21;106;0

我有csv文件(文件)和如下文件结构:

Amount;P_price;Ean;Number;Name;DPH;certifikate;o1;o2;ZC
0;168,00;8806333394584;E1347;MISSHA Gel;21;106;0002;0001;290
0;156,80;8806336488488;E1357;MISSHA Lotion;21;106;0002;0001;271
0;123,20;8806584752571;E1367;MISSHA Mist;21;106;0002;0001;213
我想加载所有行,不带第一行,其中有列的名称…我想将这些值保存到sql表中…我知道如何写入sql,但我需要知道如何将每行的值加载到此变量:

Amount
P_price
Ean
Number
Name
DPH
certifikate
o1
o2
ZC
我输入的文件路径:string file;
你有什么想法吗?

请尝试下面的链接,并告诉我需要什么帮助


如果您确定这是格式,并且永远不会有任何
在实际值中,然后可以使用快速脏方法:

foreach(String line in File.ReadAllLines(path).Skip(1))
{
    String[] columns = line.Split(';');
    String amount = columns[0];
    String P_price = columns[1];
    //etc
}

sql server中的

BULK INSERT [dbo].[csv]
        FROM 'C:\Users\...' --file path
        WITH
        (
        FIRSTROW = 2,
        FIELDTERMINATOR = ',',  --CSV field delimiter
        ROWTERMINATOR = '\n',   --Use to shift the control to next row
        ERRORFILE = 'C:\Users\file\...',
        TABLOCK
        )

干燥-不要重复你自己 将帮助您处理csv文件

例如:

带有CSV的文件:

10248|VINET|04071996|32.38
10249|TOMSP|05071996|11.61
10250|HANAR|08071996|65.83
10251|VICTE|08071996|41.34
...............
数据传输对象:

[DelimitedRecord("|")]
public class Orders
{
    public int OrderID;

    public string CustomerID;

    [FieldConverter(ConverterKind.Date, "ddMMyyyy")]
    public DateTime OrderDate;

    public decimal Freight;
}
读者:

FileHelperEngine<Orders> engine = new FileHelperEngine<Orders>(); 

// to Read use: 
Orders[] res = engine.ReadFile("TestIn.txt"); 
FileHelperEngine=newFileHelperEngine();
//阅读和使用:
Orders[]res=engine.ReadFile(“TestIn.txt”);
除此之外:

给你:

[DelimitedRecord(";")]
[IgnoreFirst(1)] 
public class RootObject
{
    public string Amount { get; set; }
    public string P_price { get; set; }
    public object Ean { get; set; }
    public string Number { get; set; }
    public string Name { get; set; }
    public int DPH { get; set; }
    public int certifikate { get; set; }
    public int o1 { get; set; }
    public int o2 { get; set; }
    public int ZC { get; set; }
}

FileHelperEngine<Orders> engine = new FileHelperEngine<RootObject>(); 

// to Read use: 
Orders[] res = engine.ReadFile("TestIn.txt"); 
[DelimitedRecord(“;”)]
[第一(1)条]
公共类根对象
{
公共字符串金额{get;set;}
公共字符串P_price{get;set;}
公共对象Ean{get;set;}
公共字符串编号{get;set;}
公共字符串名称{get;set;}
公共int DPH{get;set;}
公共int证书{get;set;}
公共int o1{get;set;}
公共int o2{get;set;}
公共int ZC{get;set;}
}
FileHelperEngine=newFileHelperEngine();
//阅读和使用:
Orders[]res=engine.ReadFile(“TestIn.txt”);

否,我要插入第一行..在第二行之后..谢谢..并且可以不保存第一行?跳过第一次迭代?:)