Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想使用实体框架将数据从CSV文件导入SQL数据库_C#_Entity Framework_Csv - Fatal编程技术网

C# 我想使用实体框架将数据从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(',')) {

我想将数据从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
您需要知道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
         // ...
      };
  }
}