如何在导入Excel到数据库时选择以它开头的行

时间:2017-08-17 12:06:40

标签: c# excel ado.net

当我将数据从Excel导入数据库时​​,代码从第一行开始,它应该从第二行开始




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

 foreach(table.Rows中的DataRow dr)
 {
 string input = Convert.ToString(dr [0]);
 var reg = new Regex(pattern2,RegexOptions.IgnoreCase);
匹配匹配= reg.Match(输入);

 string input2 = Convert.ToString(dr [1]);
 var reg2 = new Regex(pattern,RegexOptions.IgnoreCase);
匹配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();
  
&# xA;


这里我从第一行开始,第一行是标题行,所以它不应该进入数据库,我怎么能跳过它?




1 个答案:

答案 0 :(得分: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);
    }
}