2017-08-17 30 views
0

當我從Excel導入數據到數據庫中的代碼開始與第一排它應與第二行如何選擇導入Excel啓動時該行與它的數據庫

MaamoonKhalidIssueEntities db = new MaamoonKhalidIssueEntities(); 
DataTable table = result.Tables[1]; 

foreach (DataRow dr in table.Rows) 
{ 
    string input = Convert.ToString(dr[0]); 
    var reg = new Regex(pattern2, RegexOptions.IgnoreCase); 
    Match match = reg.Match(input); 

    string input2 = Convert.ToString(dr[1]); 
    var reg2 = new Regex(pattern, RegexOptions.IgnoreCase); 
    Match match2 = reg2.Match(input2); 


    if (match.Success && match2.Success) 
    { 
     Person addtable = new Person() 
     { 
      ncode = Convert.ToString(dr[0]), 
      nname = Convert.ToString(dr[1]) 
     }; 

     if (ValidateNewPerson(addtable, db)) 
      db.People.Add(addtable); 
    } 
} 
db.SaveChanges(); 
excelreader.Close(); 
stream.Close(); 

在這裏,我開始啓動第一行,第一行是一個標題行,所以它不應該進入數據庫,我怎麼能跳過它?

回答

1

您可以通過table.Rows列表迭代和索引1而不是0開始:在第二個選項

for (int i = 1; i < table.Rows.Count; i++) 
{ 
    DataRow dr = table.Rows[i]; 

    string input = Convert.ToString(dr[0]); 
    var reg = new Regex(pattern2, RegexOptions.IgnoreCase); 
    Match match = reg.Match(input); 

    string input2 = Convert.ToString(dr[1]); 
    var reg2 = new Regex(pattern, RegexOptions.IgnoreCase); 
    Match match2 = reg2.Match(input2); 

    if (match.Success && match2.Success) 
    { 
     Person addtable = new Person() 
     { 
      ncode = Convert.ToString(dr[0]), 
      nname = Convert.ToString(dr[1]) 
     }; 

     if (ValidateNewPerson(addtable, db)) 
      db.People.Add(addtable); 
    } 
} 
+0

他怎麼知道行中的哪些數據? – AShalata

+0

@AShalata查看更新的答案,我提供了完整的代碼。 –

相關問題