Kamran Khan
Kamran Khan

Reputation: 33

I want to import data from CSV file to SQL database using Entity Framework

I want insert data from CSV file to SQL table. Here is my code I don't know how to go further

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

here is my csv file data

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

class Definition

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

Upvotes: 2

Views: 8664

Answers (2)

Georg Patscheider
Georg Patscheider

Reputation: 9463

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

Upvotes: 2

Richard
Richard

Reputation: 109140

You need to know which column of the CSV maps to which property. With this information you can map values into properties.

Assuming you have a dictionary of indexes columnMap you can use

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

Note I do not iterate over the separate values from one row in the CSV.

Also note you need a proper CSV parser to handle the escaping/quoting necessary for when values contain commas or quotes.

Upvotes: 2

Related Questions