我想将CSV文件中的数据插入到SQL表中。这是我的代码,我不知道如何进一步
var readcsv = File.ReadAllText(filepath);
string[] csvfilerecord = readcsv.Split('\n');
foreach (var row in csvfilerecord)
{
if (!string.IsNullOrEmpty(row))
{
foreach (var cell in row.Split(','))
{
var cards = new Cards
{
//What to do here to assign data to each column
};
}
}
}
这是我的csv文件数据
12345,cvv,18-april,name,country,address,state,city,dob,zipcode,phone,email,10 12345,cvv,18-april,name,country,address,state,city,dob,zipcode,phone,email,10
类定义
public string nummber { get; set; }
public string cvv { get; set; }
public string expDate { get; set; }
public string name { get; set; }
public string country { get; set; }
public string address { get; set; }
public string state { get; set; }
public string dob { get; set; }
答案 0 :(得分:1)
您需要知道CSV的哪一列映射到哪个属性。使用此信息,您可以将值映射到属性中。
假设你有一个索引字典columnMap
,你可以使用
var cells = row.Split(',');
var cards = new Cards {
prop = cells[columnMap["prop"]],
nextProp = cells[columnMap["nextProp"]],
…
}
注意我不会迭代CSV中一行的单独值。
另请注意,您需要一个合适的CSV解析器来处理值包含逗号或引号时所需的转义/引用。
答案 1 :(得分:0)
var readcsv = File.ReadAllText(filepath);
string[] csvfilerecord = readcsv.Split('\n');
foreach (var row in csvfilerecord)
{
if (!string.IsNullOrEmpty(row))
{
var cells = row.Split(','))
var card = new Cards
{
number = cells[0], // number is in first cell
cvv = cells[1], // cvv is in second cell
// ...
};
}
}