2016-06-29 17 views
0

CSVファイルからSQLテーブルにデータを挿入します。あなたはどの列を知っている必要があります。ここに私のコードは私がここでさらにエンティティフレームワークを使用して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 

あるクラス定義

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

「カード」クラスの定義は何ですか? –

+2

https://github.com/JoshClose/CsvHelperのようなツールを使用して、行を直接プロキシクラスにマップできます。 – pwas

+0

その実体私はそれにレコードを挿入したい –

答えて

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

CSVはどのプロパティにマップされます。この情報を使用すると、値をプロパティにマップできます。

あなたはインデックスの辞書を持っていると仮定するとcolumnMapあなたは私がCSVの1行とは別の値を反復しません

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

注意を使用することができます。

値にカンマまたは引用符が含まれている場合に必要なエスケープ/クォートを処理するには、適切なCSVパーサが必要です。

関連する問題