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

时间:2013-11-12 13:00:35

标签: 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;0002;0001;213

我想首先加载所有行,其中我有列的名称...这个值我要保存到sql表中......我知道如何写入sql,但我需要知道如何加载每行的值到这个变量:

Amount
P_price
Ean
Number
Name
DPH
certifikate
o1
o2
ZC

我有的文件路径:字符串文件; 你有什么想法吗?

4 个答案:

答案 0 :(得分:1)

如果你确定这是格式,并且实际值中永远不会有;,那么你可以使用快速而肮脏的方法:

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

答案 1 :(得分:0)

答案 2 :(得分:0)

in 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
        )

答案 3 :(得分:0)

干 - 不要重复自己 http://www.filehelpers.com/将帮助您使用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"); 

而不是: usage

对你:

[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");