2013-07-10 32 views
1

我有一個頁面,列出我的數據庫表中的行,用戶名和複選框。 當CheckBox.checked爲true時,我需要一個發送郵件給用戶的函數,但是不會在我的頁面上顯示Email。 我有這些mothods:Foreach SQLDataReader

public class ListRequest 
{ 
    public string UserName { get; set; } 
    public string Email { get; set; } 
} 

public List<ListRequest> PreencheValores(SqlDataReader reader) 
{ 
    var lista = new List<ListRequest>(); 
    while (reader.Read()) 
    { 
     var listRequest = new ListRequest(); 
     listRequest.UserName = reader["User"].ToString(); 
     listRequest.Email = reader["Email"].ToString(); 
     lista.Add(listRequest); 
    } 
    return lista; 
} 

public List<ListRequest> ConsultarRequest() 
{ 
    var lstRetorno = new List<ListRequest>(); 
    using (objConexao = new SqlConnection(strStringConexao)) 
    { 
     using (objCommand = new SqlCommand(strSelectPorID, objConexao)) 
     { 
      try 
      { 
       objConexao.Open(); 
       objCommand.Parameters.AddWithValue("@UserName", dm3); 

       var objDataReader = objCommand.ExecuteReader(); 
       if (objDataReader.HasRows) 
        lstRetorno = PreencheValores(objDataReader); 
      } 
      catch (Exception ex) 
      { 
       throw new Exception(ex.Message); 
      } 
      finally 
      { 
       objConexao.Close(); 
      } 
     } 
    } 
    return lstRetorno; 
} 

我如何彌補這方面的foreach?我需要將所有字符串電子郵件都發送到此列表,但不在我的頁面中顯示電子郵件。 現在我使用foreach(GridViewRow在GridView.Rows中的行)在CheckBox.cheked爲true時獲取名稱。 我很清楚有問題嗎? Tks!

+2

所以看起來你的代碼獲得的電子郵件地址/供用戶名ES;你不能只調用這個方法*並遍歷返回的列表?你卡在哪裏? –

+1

一種方法是插入帶有電子郵件值的隱藏字段,然後以與複選框相同的方式獲得隱藏的字段控件。如果要隱藏隱藏字段中的電子郵件,請考慮緩存綁定的收集並在隱藏字段中插入標識符。 – gustavodidomenico

+0

@MarcGravell我有一個事件發送(我的網頁中的按鈕)的方法。在這種方法中,我需要一個foreach來檢查每個電子郵件到用戶名。我如何說,我做了一個foreach(在GridView.Rows GridViewRow行),但它沒有得到電子郵件,因爲電子郵件沒有顯示在我的GridView。我如何對我的名單進行全面檢查? – CaioVJesus89

回答

1

如果你想要做的與objDataReader每一行的東西,用

While objDataReader.Read() 
    'do something 
End While