C# 加载csv文件并保存到sql表中
我有csv文件(文件)和如下文件结构: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
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”);
否,我要插入第一行..在第二行之后..谢谢..并且可以不保存第一行?跳过第一次迭代?:)