我想使用实体框架从CSV文件导入数据到SQL数据库

本文关键字:导入 文件 数据 数据库 SQL CSV 实体 框架 | 更新日期: 2023-09-27 17:53:23

我想从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文件数据

<>之前cvv, 12345年4月18日,姓名,国家,地址,国家,城市,强加于人,邮编,电话,电子邮件,10cvv, 12345年4月18日,姓名,国家,地址,国家,城市,强加于人,邮编,电话,电子邮件,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; }

我想使用实体框架从CSV文件导入数据到SQL数据库

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
         // ...
      };
  }
}

您需要知道CSV的哪一列映射到哪个属性。有了这些信息,您可以将值映射到属性。

假设你有一个索引字典columnMap,你可以使用

var cells = row.Split(',');
var cards = new Cards {
  prop = cells[columnMap["prop"]],
  nextProp = cells[columnMap["nextProp"]],
  …
}

注意,我不会遍历CSV中一行的单独值。

还需要注意,当值包含逗号或引号时,您需要一个适当的CSV解析器来处理必要的转义/引用。