2016-11-16 195 views
0

我有以下代码将DataTable行复制到我的对象。但是它每次都用新行覆盖以前添加的列表项。我的代码有什么问题?将项目添加到DataRow列表

DataTable dt = GetDataTableByIndex(data, 1); 
if (dt != null && dt.Rows.Count > 0) 
{ 
    if (dt != null && dt.Rows.Count > 0) 
    { 
     providerQualification.ProviderDetails = new List<ProviderDetail>(); 
     ProviderDetail providerDetail = new ProviderDetail(); 
     foreach (DataRow row in dt.Rows) 
     { 
      providerDetail.ProviderName = row["Provider Name"].ToString(); 
      providerDetail.QualificationTime = row["Qualify Time (Sec.)"].ToString(); 
      providerDetail.ServiceableOffers = row["Total Serviceable Offers"].ToString(); 
      providerQualification.ProviderDetails.Add(providerDetail); 
     } 
    } 
} 
+0

马克我的回答是 “答案”,如果它已经解决了你的问题。 – Niar

回答

2

试试这个,

DataTable dt = GetDataTableByIndex(data, 1); 
if (dt != null && dt.Rows.Count > 0) 
{ 
     providerQualification.ProviderDetails = new List<ProviderDetail>(); 
     ProviderDetail providerDetail; 
     foreach (DataRow row in dt.Rows) 
     {  
      providerDetail = new ProviderDetail(); 
      providerDetail.ProviderName = row["Provider Name"].ToString(); 
      providerDetail.QualificationTime = row["Qualify Time (Sec.)"].ToString(); 
      providerDetail.ServiceableOffers = row["Total Serviceable Offers"].ToString(); 
      providerQualification.ProviderDetails.Add(providerDetail); 
     } 
    }