C# 我想使用实体框架将数据从CSV文件导入SQL数据库
我想将数据从CSV文件插入SQL表。这是我的代码,我不知道怎么进一步C# 我想使用实体框架将数据从CSV文件导入SQL数据库,c#,entity-framework,csv,C#,Entity Framework,Csv,我想将数据从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 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
您需要知道CSV的哪个列映射到哪个属性。有了这些信息,您可以将值映射到属性中 假设您有一个索引字典
columnMap
,您可以使用
var cells = row.Split(',');
var cards = new Cards {
prop = cells[columnMap["prop"]],
nextProp = cells[columnMap["nextProp"]],
…
}
注意,我不会迭代CSV中一行的单独值
另请注意,当值包含逗号或引号时,您需要一个合适的CSV解析器来处理必要的转义/引号。卡的定义是什么类?使用诸如-之类的工具可以直接将行映射到代理类。这是我想在其中插入记录的实体是。。你能显示它的定义吗?它有不同的列,如数字cvv、dob、名称、国家等。为了解决这个问题,我建议使用
File.ReadAllLines(filepath)
,而不是.Split('\n')
方法。
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
// ...
};
}
}
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
// ...
};
}
}