none
Mudar para o proximo registro da minha tabela

    Question

  • Tenho uma string de conexão que funciona perfeitamente preenchendo o 1 registro, mas preciso que mude para o proximo registro e preencha os outros campos

    string

     

    _strSQL2 = "SELECT * FROM SQL010 WHERE QL_CURRIC = '" + _QG_CURRIC + "' AND D_E_L_E_T_ = '" + "" + "' ORDER BY R_E_C_N_O_";

     

    SqlConnection con2 = new SqlConnection(_connectionString);

     

    SqlCommand cmd2 = new SqlCommand(_strSQL2, con2);

    cmd2.CommandType =

    CommandType.Text;

     

    using (con2)

    {

    con2.Open();

     

    SqlDataReader dr2 = cmd2.ExecuteReader();

     

    if (dr2.Read())

    {

     

    //1 Registro

    Response.Cookies[

    "HISTORICO"]["QL_DTADMIS1"] = (string)dr2["QL_DTADMIS"];

    Response.Cookies[

    "HISTORICO"]["QL_DTDEMIS1"] = (string)dr2["QL_DTDEMIS"];

    Response.Cookies[

    "HISTORICO"]["QL_EMPRESA1"] = (string)dr2["QL_EMPRESA"];

    Response.Cookies[

    "HISTORICO"]["QL_FUNCAO1"] = (string)dr2["QL_FUNCAO"];

     

    //2 Registro ?

     

    }

    dr2.Close();

    }

    con2.Close();

    Tuesday, June 01, 2010 7:17 PM

Answers

  • Olá, Paulo.

    É ÓBVIO QUE ESTÁ RETORNANDO 4 REGISTROS!

    Você está executando o dr2.Read() e antes de colocar o dr2 ele em um DataTable.

    O comando Read() de um DataReader serve justamente para LER UM REGISTRO! Sendo assim, para o DataTable só está indo 4 registros.

    Se quer fazer isso que está fazendo (** Sem comentários sobre o código **), remova o if(dr.Read()) do seu código.

    Abraços,


    Paulo Castilho - www.paulocastilho.com.br
    Wednesday, June 02, 2010 1:34 PM
  • ....

    Olá, Paulo.

    É ÓBVIO QUE ESTÁ RETORNANDO 4 REGISTROS!

    Você está executando o dr2.Read() e antes de colocar o dr2 ele em um DataTable .

    O comando Read() de um DataReader serve justamente para LER UM REGISTRO! Sendo assim, para o DataTable só está indo 4 registros.

    Se quer fazer isso que está fazendo (** Sem comentários sobre o código **), remova o if(dr.Read()) do seu código.

    Abraços,


    Paulo Castilho - www.paulocastilho.com.br


    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    • Marked as answer by Paulo_Ti Wednesday, June 02, 2010 2:07 PM
    • Edited by Raphael Moreira Wednesday, June 02, 2010 2:23 PM
    Wednesday, June 02, 2010 1:51 PM

All replies

  • Não é mais facil listar isso num GridViews do que registro a registro?
    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Tuesday, June 01, 2010 7:19 PM
  • Na verdade com essa sua estrutura nao sera possivel, porque vc ja fixou o criterio no _STRSQL.

    Como é que vc vai para o segundo registro se sua consulta só traz um?

    Vc vai ter que repensar sua estrutura para fazer isso.

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Tuesday, June 01, 2010 7:22 PM
  • A MINHA CONSULTA TRAZ 5 REGISTROS COM O FILTRO QUE EU FIZ. POR ISSO PRECISO PEGAR O 2,3,4 E 5 REGISTRO COMO UM MOVENEXT (MOVER PARA O PROXIMO REGISTRO).

    TEM COMO ?

    Tuesday, June 01, 2010 7:32 PM
  • O que você está usando para exibir os registros?
    basta você carregar esses dados num DataSet e ir percorrendo com o "NExt" e "Previous" rodando o Index


    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Tuesday, June 01, 2010 7:33 PM
  • EU COLOQUEI ACIMA MEU CODIGO COMO ESTOU MOSTRANDO OS REGISTROS NO PRECISO PASSAR PARA O PROXIMO REGISTRO CONFORME A ESTRUTURA QUE JA MONTEI.

    TEM COMO ?

    Tuesday, June 01, 2010 7:47 PM
  • Mas vc quer mudar isso quando clicar um botao, ou preencher uma lista? Se vc estiver pensando em preencher os cookies com todos os registros, eu diria que vc esta pensando errado.. lembre-se do limite de 50 cookies.

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Tuesday, June 01, 2010 7:48 PM
  • Tem, amigo.
    mas não tem nada a ver com o que você fez acim e sim com a sua página e modo de exibição.

    Na sua página onde exibe os registros, você vai ter que criar um "Próximo" e um "Anterior" e controlar esses registros.

    Digamos que sua select retorne 10 registros. Você joga esse resultado num DataTAble por exemplo, e abre o primeiro (indice 0). QUando clicar no próximo, consulta no DataTable e vai para 1 e assim sucessivamente.

    Armazene os registros na Session para não precisar ficar toda hora requisitando os dados do servidor.

    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Tuesday, June 01, 2010 7:55 PM
  • Digamos que sua select retorne 10 registros. Você joga esse resultado num DataTAble por exemplo, e abre o primeiro (indice 0). QUando clicar no próximo, consulta no DataTable e vai para 1 e assim sucessivamente.

    ENTÃO VAMOS ESQUECER MEU CODIDO.. ME DE UM EXEMPLO  DE UMA CONSULTA QUE JOGUE O 1 REGISTRO NUMA STRING1  E O 2 REGISTRO NUMA STRING 2

    Tuesday, June 01, 2010 8:01 PM
  • Apesar que eu ainda creio que tem como usar o meu codigo pra fazer isso, so preciso de uma linha no meu codigo passando para o proximo registro.
    Tuesday, June 01, 2010 8:02 PM
  •  DataTable table = new DataTable();
    string QL_FUNCAO1="";
    string QL_FUNCAO2="";
    table.Load(dr2);
    QL_FUNCAO1 =(string)(table.Rows[0]["QL_FUNCAO"]);
    QL_FUNCAO2 =(string)(table.Rows[1]["QL_FUNCAO"]);

    Simples como um tomate.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Tuesday, June 01, 2010 8:09 PM
  • JOgar registro numa string1 e depois numa string2?
    Cara, e se vier 5000 registros do banco?

    Vai criar 5000 strings?

    E seu código, amigo, é apenas uma conexão simples com o banco que tem por objetivo apenas trazer resultados. Não existe uma "linha" que vai fazer tudo vir corretamente paginado.

    Tem que ser como falei acima, por DataTable (um exemplo).

    Você está com a visão meio errada de tratamento de sistema.

    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Tuesday, June 01, 2010 8:12 PM
  • A minha consulta so pode ter no maximo 5 registros, eu tenho mesmo que usar o DataTable ?

    Não teria como usar a minha conexão existente ?

    string

     

    _strSQL2 = "SELECT * FROM SQL010 WHERE QL_CURRIC = '" + _QG_CURRIC + "' AND D_E_L_E_T_ = '" + "" + "' ORDER BY R_E_C_N_O_";

     

    SqlConnection con2 = new SqlConnection(_connectionString);

     

    SqlCommand cmd2 = new SqlCommand(_strSQL2, con2);

    cmd2.CommandType =

    CommandType.Text;

     

    using (con2)

    {

    con2.Open();

     

    SqlDataReader dr2 = cmd2.ExecuteReader();

     

    if (dr2.Read())

    {

     

    //1 Registro

    Response.Cookies[

    "HISTORICO"]["QL_DTADMIS1"] = (string)dr2["QL_DTADMIS"];

    Response.Cookies[

    "HISTORICO"]["QL_DTDEMIS1"] = (string)dr2["QL_DTDEMIS"];

    Response.Cookies[

    "HISTORICO"]["QL_EMPRESA1"] = (string)dr2["QL_EMPRESA"];

    Response.Cookies[

    "HISTORICO"]["QL_FUNCAO1"] = (string)dr2["QL_FUNCAO"];

     

    //2 Registro ?

     

    }

    dr2.Close();

    }

    con2.Close();

    Se não tiver mesmo como usar a minha conexão existente como fica então aproveitando meu exemplo ?

    Tuesday, June 01, 2010 8:50 PM
  • Eu te dei o codigo quase pronto.... um pouco de esforço seu seria no minimo interessante....

    Vai lá, o codigo pronto:

    string _strSQL2 = "SELECT * FROM SQL010 WHERE QL_CURRIC = '" + _QG_CURRIC + "' AND D_E_L_E_T_ = '" + "" + "' ORDER BY R_E_C_N_O_";
    
    SqlConnection con2 = new SqlConnection(_connectionString);
    
    SqlCommand cmd2 = new SqlCommand(_strSQL2, con2);
    
    cmd2.CommandType =
    
    CommandType.Text;
    
     using (con2)
    
    {
    
    con2.Open();
    
     SqlDataReader dr2 = cmd2.ExecuteReader();
    
     DataTable table = new DataTable();
    string QL_FUNCAO1="";
    string QL_FUNCAO2="";
    table.Load(dr2);//é aqui que vc transforma um DataReader em um DataTable
    QL_FUNCAO1 =(string)(table.Rows[0]["QL_FUNCAO"]);//primeiro registro
    QL_FUNCAO2 =(string)(table.Rows[1]["QL_FUNCAO"]);//segundo registro
    
    dr2.Close();
    }
    con2.Close();

    att

     


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Tuesday, June 01, 2010 8:56 PM
  • Paulo, o mesmo codigo que vc postou, so mudei um if para um while :D

     

    string _strSQL2 = "SELECT * FROM SQL010 WHERE QL_CURRIC = '" + _QG_CURRIC + "' AND D_E_L_E_T_ = '" + "" + "' ORDER BY R_E_C_N_O_";
    
    SqlConnection con2 = new SqlConnection(_connectionString);
    SqlCommand cmd2 = new SqlCommand(_strSQL2, con2);
    cmd2.CommandType = CommandType.Text;
    
    using (con2)
    {
      con2.Open();
      SqlDataReader dr2 = cmd2.ExecuteReader();
      while (dr2.Read())
      {
       //1 Registro
       Response.Cookies["HISTORICO"]["QL_DTADMIS1"] = (string)dr2["QL_DTADMIS"];
       Response.Cookies["HISTORICO"]["QL_DTDEMIS1"] = (string)dr2["QL_DTDEMIS"];
       Response.Cookies["HISTORICO"]["QL_EMPRESA1"] = (string)dr2["QL_EMPRESA"];
       Response.Cookies["HISTORICO"]["QL_FUNCAO1"] = (string)dr2["QL_FUNCAO"];
       //2 Registro ?
       //Enquanto tiver dados no DataReader ele vai interrar nesse while.
      }
      dr2.Close();
    }
    
    con2.Close();


    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.spaces.live.com/

    Wednesday, June 02, 2010 2:33 AM
  • ESTRANHO ESSE ERRO JA QUE TENHO 5 REGISTROS NESSA TABELA

    Não há linha na posição 4.

     

    Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

    Detalhes da Exceção: System.IndexOutOfRangeException: Não há linha na posição 4.

    Erro de Origem:

    Linha 99:             Response.Cookies["HISTORICO"]["QL_FUNCAO4"] = (string)(table.Rows[3]["QL_FUNCAO"]);
    Linha 100:            //5 Registro
    Linha 101:            Response.Cookies["HISTORICO"]["QL_DTADMIS5"] = (string)(table.Rows[4]["QL_DTADMIS"]);
    Linha 102:            Response.Cookies["HISTORICO"]["QL_DTDEMIS5"] = (string)(table.Rows[4]["QL_DTDEMIS"]);
    Linha 103:            Response.Cookies["HISTORICO"]["QL_EMPRESA5"] = (string)(table.Rows[4]["QL_EMPRESA"]);
    Wednesday, June 02, 2010 12:13 PM
  • Simples.. é porque vc trouxe só 4 registros (0,1,2,3). Eu duvido que vc tenha 5 registros... Verifique dentro do SQL Server

    Verifique antes a quantidade de registros, com table.Rows.Count

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Wednesday, June 02, 2010 12:16 PM
  • É por isso que falei acima.
    Fixar no sistema a quantidade de registros que vai vir só vai te dar problemas. Hoje, pode ser 5 registros. Mas daqui a 6 meses, se um cara adicionar um registro a mais na tabela, tudo o que você fez vai dar problema de novo e assim consecutivamente até o fim da vida.

    Na hora de recuperar os itens, sugiro você efetuar um foreach no DataTable e ir recuperando as conforme elas existam.
    Caso contrário, você sempre terá um sistema falho.


    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Wednesday, June 02, 2010 12:28 PM
  • EU VERIFIQUEI NA MINHA TABELA EXISTEM MESMO 5 REGISTROS NÃO SEI PQ ESTA DANDO ERRO NO 5 REGISTRO.

    NA VERDADE EU TERIA QUE VERIFICAR TIPO

    SE EXISTE REGISTRO 5

    {

        RECEBE OS VALORES

    }

    TEM COMO ?

    Wednesday, June 02, 2010 12:45 PM
  • Amigo, faça:

    int i = Table.Rows.Count e veja que valor retornar.

    E responsendo a sua pergunta, sim.
    Basta você fazer um for each no DataTable (que é o que expliquei acima).

    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Wednesday, June 02, 2010 12:48 PM
  • Como é que vc verificou isso?

    Executou a mesma query do seu programa?

    SELECT * FROM SQL010 WHERE QL_CURRIC = '12345' AND D_E_L_E_T_ = '' ORDER BY R_E_C_N_O_



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Wednesday, June 02, 2010 12:51 PM
  • Amigo, pode ter 5 registros na tabela, mas sua select tem Filtros. E filtros servem para filtrar, logo, ele deve estar tirando um dos itens e retornando 4.
    Como eu disse, trabalhar com registros fixos é coisa errada.

    Se o valor vem de uma tabela (que é volátil), fixar isso no sistema é completamente errado.

    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Wednesday, June 02, 2010 12:54 PM
  • AMIGO A FORMA QUE EU FIZ NÃO PODE TER MAIS QUE 5 REGISTROS, ENTÃO A QUANTIDADE DE REGISTROS NESSA TABELA VAI DE 0 A 5 REGISTROS

    EU COLOQUEI A QUERY NO SQL E JUNTO COM OS FILTROS E RETORNOU 5 REGISTROS

    NÃO ESTOU ENTENDENDO PQ NÃO ESTA DANDO CERTO NO ULTIMO REGISTRO.

    Wednesday, June 02, 2010 1:03 PM
  • Faça isso no seu código (depois que carregar o DataTable)

    int i = Table.Rows.Count;

    Coloque um break nessa linha e quando passar, veja que valor retorna (faça isso antes de começar a atribuir os valores para as Cookies)

    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Wednesday, June 02, 2010 1:08 PM
  • EU USEI O COUNT E RETORNA 4 REGISTROS, MAS EXECUTEI A MESMA QUERY NO SQL E RETORNA 5 REGISTROS, NOSSA QUE ESTRANHO

    SEGUE COMO FICOU MEU CODIGO AGORA

     

    string _strSQL2 = "SELECT * FROM SQL010 WHERE QL_CURRIC = '" + _QG_CURRIC + "' AND D_E_L_E_T_ <> '" + "*" + "' ORDER BY R_E_C_N_O_";

     

    SqlConnection con2 = new SqlConnection(_connectionString);

     

    SqlCommand cmd2 = new SqlCommand(_strSQL2, con2);

    cmd2.CommandType =

    CommandType.Text;

     

    using (con2)

    {

    con2.Open();

     

    SqlDataReader dr2 = cmd2.ExecuteReader();

     

    if (dr2.Read())

    {

     

     

    DataTable table = new DataTable();

    table.Load(dr2);

    // Aqui vc transforma um DataReader em um DataTable

     

    //1 Registro

    Response.Cookies[

    "HISTORICO"]["QL_DTADMIS1"] = (string)(table.Rows[0]["QL_DTADMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_DTDEMIS1"] = (string)(table.Rows[0]["QL_DTDEMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_EMPRESA1"] = (string)(table.Rows[0]["QL_EMPRESA"]);

    Response.Cookies[

    "HISTORICO"]["QL_FUNCAO1"] = (string)(table.Rows[0]["QL_FUNCAO"]);

     

    //2 Registro

    Response.Cookies[

    "HISTORICO"]["QL_DTADMIS2"] = (string)(table.Rows[1]["QL_DTADMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_DTDEMIS2"] = (string)(table.Rows[1]["QL_DTDEMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_EMPRESA2"] = (string)(table.Rows[1]["QL_EMPRESA"]);

    Response.Cookies[

    "HISTORICO"]["QL_FUNCAO2"] = (string)(table.Rows[1]["QL_FUNCAO"]);

     

    //3 Registro

    Response.Cookies[

    "HISTORICO"]["QL_DTADMIS3"] = (string)(table.Rows[2]["QL_DTADMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_DTDEMIS3"] = (string)(table.Rows[2]["QL_DTDEMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_EMPRESA3"] = (string)(table.Rows[2]["QL_EMPRESA"]);

    Response.Cookies[

    "HISTORICO"]["QL_FUNCAO3"] = (string)(table.Rows[2]["QL_FUNCAO"]);

     

    //4 Registro

    Response.Cookies[

    "HISTORICO"]["QL_DTADMIS4"] = (string)(table.Rows[3]["QL_DTADMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_DTDEMIS4"] = (string)(table.Rows[3]["QL_DTDEMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_EMPRESA4"] = (string)(table.Rows[3]["QL_EMPRESA"]);

    Response.Cookies[

    "HISTORICO"]["QL_FUNCAO4"] = (string)(table.Rows[3]["QL_FUNCAO"]);

     

    //5 Registro

    Response.Cookies[

    "HISTORICO"]["QL_DTADMIS5"] = (string)(table.Rows[4]["QL_DTADMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_DTDEMIS5"] = (string)(table.Rows[4]["QL_DTDEMIS"]);

    Response.Cookies[

    "HISTORICO"]["QL_EMPRESA5"] = (string)(table.Rows[4]["QL_EMPRESA"]);

    Response.Cookies[

    "HISTORICO"]["QL_FUNCAO5"] = (string)(table.Rows[4]["QL_FUNCAO"]);

    }

    dr2.Close();

    }

    con2.Close();

    Wednesday, June 02, 2010 1:13 PM
  • Seu problema está nessa select ai.
    Tente passar os parâmetros da Select diretamente nela (sem concatenar nada)

    SELECT * FROM SQL010 WHERE QL_CURRIC = ' ColoqueCodigoDeTesteAqui' AND D_E_L_E_T_ <> ' * ' ORDER BY R_E_C_N_O_" ;

    Tem que ser "diferente de asterísco", certo?"

    Passa a Select direto assim no seu código e veja quanto retornar no Count.

    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Wednesday, June 02, 2010 1:19 PM
  • Se deu 4 registros é porque sao 4 registros e ponto... Se vc executou a mesma (ctrl+C & ctrl+V) query e trouxe 5 entao duas coisas podem ter acontecido:

    1 - A base que vc executou a query nao é a mesma que seu programa enxerga

    2- Chama o suporte microsoft, porque vc descobriu um bug no funcionamento do ADO.NET

     

    E nao estou sendo sarcastico, sao as unicas duas opçoes mesmo.

     

    Faça o seguinte:

    Coloque um breakpoint na linha

    SqlDataReader dr2 = cmd2.ExecuteReader();

    Depois verifique o conteudo de _strSQL2 

    Copie a query e cole dentro so SSMS e execute a query...

    No mais, sua estrutura esta totalmente torta, como o Fkaeh ja disse, mas é vc que insiste em fazer dessa maneira.

     

    Att

     


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Wednesday, June 02, 2010 1:25 PM
  • Olá, Paulo.

    É ÓBVIO QUE ESTÁ RETORNANDO 4 REGISTROS!

    Você está executando o dr2.Read() e antes de colocar o dr2 ele em um DataTable.

    O comando Read() de um DataReader serve justamente para LER UM REGISTRO! Sendo assim, para o DataTable só está indo 4 registros.

    Se quer fazer isso que está fazendo (** Sem comentários sobre o código **), remova o if(dr.Read()) do seu código.

    Abraços,


    Paulo Castilho - www.paulocastilho.com.br
    Wednesday, June 02, 2010 1:34 PM
  • Paulo Castilho...

    Essa nem eu vi... Esqueci completamente que a execuçao do Read faria a leitura de um registro... 

    Ponto pra vc...

    E Paulo Medeiros, se vc tivesse usado o codigo que eu tinha postado acima, sem esse if (dr.Read), vc nao estaria com esse problema

     


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Wednesday, June 02, 2010 1:37 PM
  • Vc colocou na sua select ColoqueCodigoDeTesteAqui e tem que ser minha variavel _QG_CURRIC

    ENTÃO COMO FICA A MINHA SELECT ?

    OBRIGADO.

    Wednesday, June 02, 2010 1:46 PM
  • Paulo vc leu o que o Paulo Castilho escreveu???

    o erro esta no 

    if (dr2.Read())

    Ele força a leitura de um registro a toa.. depois quando vc faz

    table.Load(dr2);

    Só sobraram 4!!!

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Wednesday, June 02, 2010 1:51 PM
  • ....

    Olá, Paulo.

    É ÓBVIO QUE ESTÁ RETORNANDO 4 REGISTROS!

    Você está executando o dr2.Read() e antes de colocar o dr2 ele em um DataTable .

    O comando Read() de um DataReader serve justamente para LER UM REGISTRO! Sendo assim, para o DataTable só está indo 4 registros.

    Se quer fazer isso que está fazendo (** Sem comentários sobre o código **), remova o if(dr.Read()) do seu código.

    Abraços,


    Paulo Castilho - www.paulocastilho.com.br


    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    • Marked as answer by Paulo_Ti Wednesday, June 02, 2010 2:07 PM
    • Edited by Raphael Moreira Wednesday, June 02, 2010 2:23 PM
    Wednesday, June 02, 2010 1:51 PM
  • VALEU FKAEH AGORA DEU CERTO

    FALTOU TIRAR O IF (DR2.READ())

    MUITO OBRIGADO

    JA MARQUEI COMO RESPOSTA.

    Wednesday, June 02, 2010 2:08 PM
  • Paulo, o credito da resposta é do Paulo Catilho (desculpe ai Fkaeh)... Pelo menos vote como util, e se possivel, marque a reposta dele como a correta.

    Creio que um pouco de justiça aqui no forum seja bom.

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Wednesday, June 02, 2010 2:13 PM
  • Na verdade, eu tentei marcar ele como Resposta, mas só permite uma marcação como resposta (que foi a que você fez).
    o Paulo que tem que mudar. Não eu.

    Fkaeh - Gambi.NET® Framework Certificated 2010
    ----------------------------------------------
    Se tiver paciência para avaliar, agradeço: http://premio.clubedeautores.com.br/web/site_premio/votar.php?id=12633
    Wednesday, June 02, 2010 2:20 PM
  • Deculpe Fkaeh... nao estava me refeindo a vc. Eu sei que quem marcou a resposta foi o Paulo Medeiros.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    SOGI INFORMATIQUE LTÉE (http://www.sogi.com)
    Wednesday, June 02, 2010 3:04 PM
  • OK EU MARQUEI A RESPOSTA DO PAULO CASTILHO.

    DESCULPE MAS SO TINHA VISTO A RESPOSTA DO FKAEH.

    OBRIGADO A TODOS ASSIM MESMO.

     

    Wednesday, June 02, 2010 4:09 PM
  • Caramba mano, se nem olhou o codigo que postei.....

    se tivesse dado uma olhada teria resolvido rapidamente seu problema...


    Contato:albertim_brasil@hotmail.com - Se ajudei, marca como útil.
    Twitter: Me siga!!
    Blog:http://dotnettime.spaces.live.com/

    Wednesday, June 02, 2010 4:48 PM