Reputation: 33
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
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
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