2013-07-10 35 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