none
Não executa a consulta dentro do programa RRS feed

  • Pergunta

  • Boa tarde, estou usando windows forms com access e tive dificuldade em realizar  uma consulta pois, se eu pegar a string de consulta no debug e "colar" no access ela retorna o valor correto, mas dentro do programa não está retornando nada, quando chega na linha While(reader.Read()), o cursor vai direto para fora do while, alguém poderia me dizer o que estou fazendo de errado, por favor. O método que realiza a consulta é este abaixo:

    public List<int> GetClientIdbyEmail(string email)
    {
       try
       {
          List<int> ClientIds = new List<int>();
    
          using (OleDbConnection con = new   OleDbConnection(_strcon))
          {
              con.Open();
              string teste = string.Format("SELECT [tblContact].[Client] FROM [tblContact] INNER JOIN [tblEmail] ON [tblContact].[Id] = [tblEmail].[Contact] WHERE [tblEmail].[Email] Like '*{0}'", email);
    
               using (OleDbCommand cmd = new OleDbCommand(teste, con))
               {
                   using (OleDbDataReader reader = cmd.ExecuteReader())
                   {
                       while (reader.Read())
                      {
                           ClientIds.Add(reader.GetInt32(0));
                      }
                    }
                 }
           }
    
           return ClientIds;
        }
     catch (Exception ex)
     {
        throw ex;
     }
            }

    • Movido Gustavo Maia Aguiar quarta-feira, 18 de julho de 2012 18:04 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 18 de julho de 2012 15:53

Respostas

  • Olá A.ime,
    Tudo bem?

    Vc poderia testar como o código abaixo?

    public List<int> GetClientIdbyEmail(string email)
    {
       try
       {
          List<int> ClientIds = new List<int>();
          using (OleDbConnection con = new   OleDbConnection(_strcon))
          {
              con.Open();
              string teste = string.Format("SELECT tblContact.Client FROM tblContact INNER JOIN tblEmail ON tblContact.Id = tblEmail.Contact WHERE tblEmail.Email Like '%{0}%'", email);
               using (OleDbCommand cmd = new OleDbCommand(teste, con))
               {
                   using (OleDbDataReader reader = cmd.ExecuteReader())
                   {
                       while (reader.Read())
                      {
                           ClientIds.Add(reader.GetInt32(0));
                      }
                    }
                 }
           }
           return ClientIds;
        }
     catch (Exception ex)
     {
        throw ex;
     }

    Vamos ver se agora vai.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Marcado como Resposta A.ime quinta-feira, 19 de julho de 2012 12:42
    quarta-feira, 18 de julho de 2012 20:55
    Moderador