2017-08-17 25 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查看更新的答案,我提供了完整的代码。 –