2015-02-05 3 views
0

На моей веб-странице я могу получить все записи успешно. Я использую раскрывающийся список для фильтрации записей на основе разных «статусов». Однако он отображает только первую полученную запись. Не было никаких исключений или ошибок. Когда я запускаю запрос в моей базе данных (чтобы проверить мой SQL-запрос), было найдено 3 записи. Я все еще не могу определить, что пошло не так в моих кодах.Gridview отображает только первую запись

Я работаю над трехуровневым веб-приложением.

Вот мои коды для представления слоя,

protected void ddl_status_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string status = ddl_status.SelectedItem.ToString(); 

      //Default 
      if (status == "Show All Submissions") 
      { 
       gv_combinedEntries.Visible = true; 
       SubmissionBLL sBLL = new SubmissionBLL(); 

       //Call getAllStudent() method in StudentBLL 
       List<Submission> subAll = new List<Submission>(); 

       subAll = sBLL.getAllSub(); 

       gv_combinedEntries.DataSource = subAll; 
       gv_combinedEntries.DataBind(); 
      } 

      else 
      { 
       SubmissionBLL subStatus = new SubmissionBLL(); 
       List<Submission> subList = new List<Submission>(); 
       subList = subStatus.getStatusList(status); 
       gv_combinedEntries.DataSource = subList; 
       gv_combinedEntries.DataBind(); 
      } 
    } 

Business Logic Layer:

public List<Submission> getStatusList(string statusPick) 
{ 
     List<Submission> specificStatus = new List<Submission>(); 
     Submission sub2 = new Submission(); 
     specificStatus = sub2.getStatusNewList(statusPick); 
     return specificStatus; 
} 

Data Access Layer:

public List<Submission> getStatusNewList(string statusSelected) 
    { 
     List<Submission> subStatus = new List<Submission>(); 
     string Id, School, TeamName, submissionDate, status; 

     string queryStr = "SELECT s.Id,c.School,c.TeamName,s.submissionDate, 
     c.submissionStatus FROM TeamSubmission s INNER JOIN Competition c 
     ON c.teamUsername = s.username WHERE submissionStatus = @enterStatus"; 

     SqlConnection conn = new SqlConnection(_connStr); 
     SqlCommand cmd = new SqlCommand(queryStr, conn); 

     cmd.Parameters.AddWithValue("@enterStatus", statusSelected); 

     conn.Open(); 
     SqlDataReader dr = cmd.ExecuteReader(); 

     if (dr.Read()) 
     { 
      Id = dr["Id"].ToString(); 
      School = dr["School"].ToString(); 
      TeamName = dr["TeamName"].ToString(); 
      submissionDate = dr["submissionDate"].ToString(); 
      status = dr["submissionStatus"].ToString(); 

      subStatus.Add(new Submission(Id, School, TeamName, submissionDate, status)); 
     } 

     conn.Close(); 
     dr.Close(); 
     dr.Dispose(); 

     return subStatus; 
    } 
+0

Вы прошли через свой код и подтвердили, что «subList» или «subAll» имеют более одного значения? –

ответ

1

Вы должны изменить ваш если (dr.Read()) заявление на некоторое время (dr.Read())

while (dr.Read()) 
     { 
      Id = dr["Id"].ToString(); 
      School = dr["School"].ToString(); 
      TeamName = dr["TeamName"].ToString(); 
      submissionDate = dr["submissionDate"].ToString(); 
      status = dr["submissionStatus"].ToString(); 

      subStatus.Add(new Submission(Id, School, TeamName, submissionDate, status)); 
     } 
Смежные вопросы