Jump to content
JhoniWillian

Pegar valor de Query e mandar para variavel

Recommended Posts

Boa tarde Pessoal, estou com uma dúvida. 

 

Como faço pra pegar o resultado de um select e adicionar esse valor em uma variavel para que eu consiga utilizar futuramente?

 

A query é essa:

 

string sql_verifica = "SELECT min(c.DateTimeEv) DateTimeEv FROM Production p "
                                       + "INNER JOIN Collection c "
                                       + "ON p."+id+" = c.PtrProd "
                                       + "AND p.Lx_CodEtapa = 'G' "
                                       + "AND p.Lx_Operacao = '00015' "
                                       + "AND p.Lx_LinhaReceita = 'CATERPILLAR' "
                                       + "AND p.DataLimite = '03/10/2017' "
                                       + "AND c.Event IN ('2', '10') "
                                       + "GROUP BY p.IndProd1, c.PtrProd, c.Event "
                                       + "ORDER BY p.IndProd1, c.Event, c.PtrProd ";

no caso quero pegar o resultado desse campo DateTimeEv e jogar o valor dele em uma variável.

 

ali onde está ON p."+id+" é onde ele pega o valor do meu datagrid para comparar com o c.PtrProd.

Share this post


Link to post
Share on other sites

 

p."+id+"

Não era pra ser o nome da coluna aqui?

 

Isso não deveria estar no where?

"where c.PtrProd = " + id

 

Share this post


Link to post
Share on other sites

ignore esse id, esse ID é uma variavel que referencia a celula de um datagridview, e nessa datagrid tem um resultado

 

ou seja, na minnha coluna eu pego o valor desse datagrid pra fazer a consulta dentro da query, mas ignore

 

 

Poderia me passar um exemplo de como obter o resultado do campo de um select?

Share this post


Link to post
Share on other sites

galera, bom dia

ainda não consegui, estou fazendo assim:

 

estou querendo pegar esse IndProd1 que é a coluna e jogar o resultado desse select dentro de uma variavel

OleDbCommand cmd = new OleDbCommand();

                string sql = "SELECT IndProd1 FROM Production "
                                      + "where DataLimite <> '---' "
                                      + "and Lx_CodEtapa = 'G' "
                                      + "and Lx_Operacao = '00025' "
                                      + "and Lx_LinhaReceita = 'CATERPILLAR' "
                                      + "and DataLimite <> '31/12/2999' "
                                      + "and DataLimite <> '01/01/2030' "
                                      + "and DataLimite = '02/10/2017' ";

                cmd.CommandText = sql;
                cmd.Connection = conn_mes;

                OleDbDataReader dr = cmd.ExecuteReader();
                string ordem_nc = "";

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        ordem_nc = dr["IndProd1"].ToString();
                    }
                }

                
                MessageBox.Show(ordem_nc);

 

Share this post


Link to post
Share on other sites

A conexão com o banco está correta?

Esse select retorna alguma coisa? Já executou ele no banco?

 

Se tudo tiver certo, tenta assim:

 

Esse select retorna uma lista?

Se sim, faz assim: 

var ordem_nc = new List<string>();
if (dr.HasRows)
{
  while (dr.Read())
  {
    ordem_nc.Add(dr.GetString(0));
  }
}

 

Senão, tenta por esse GetString(0).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Marcones Borges
      Olá, bom dia, estou tendo dificuldade em uma filtragem, quando passo o parâmetro para o select em forma de variável ele não exibe resultados.
       
      Segue o código:

              $usuario='gerente';         function montaSelect()         {         $sql = "SELECT * FROM membros WHERE user='".$usuario."' ";                 $query = mysql_query( $sql );                 if( mysql_num_rows( $query ) > 0 )                 {                         while( $dados = mysql_fetch_assoc( $query ) )                         {                                 $opt .= '<option value="'.$dados['nome'].'">'.$dados['nome'].'</option>';                         }                 }                 else                         $opt = '<option value="0">Nenhum Membro cadastrado</option>';                 return $opt;         }


      Quando substituo a variável pelo nome usuário gerente, ele lista normal, mais na variável não da certo. já tentei user='{$usuario}'  , user='$usuario' , user=$usuario}, nenhuma forma funciona...

      Alguém pode me ajudar..
       
    • By peterstefan
      Olá, estou com uma query aqui e preciso pegar de 2 campos diferentes os dados diferente de 0,  mais quanto tento no AND ele somente traz um resultado, o OR ele traz um dos campos com o valor 0, teria alguma forma de pegar os dados diferente de 0 dos dois campus?
      preciso pegar o idOrganizador diferente de 0 e o idPiloto diferente de 0 
       
      SELECT * FROM boletos WHERE proc = 0 AND idOrganizador !='0' AND idPiloto ='0';  
    • By mamotinho
      oi pessoal estou com um problema , não estou conseguindo passar todos os valores o foreach no json_encode() alguém poderia me ajudar, eu estou tentando monta um mecanismo de refresh em tempo real de uma lista de notificação veja abaixo:
       
      <script type="text/javascript"> function make_call() { // Fazendo requisição AJAX $j.post('teste.php', function (frase) { // Exibindo frase $j('#listas').html('<i>' + frase + '</i>'); }, 'JSON'); setTimeout(function(){ make_call(); }, 5000); } </script>
      Aqui é o arquivo que quero enviar para a div #lists
       
      <?php require("conexao/directory.php"); $notificar = $db->query("select TOP 5 * from Techi7CP.dbo.cabal_notificacao_geral order by regdate desc"); $notificacao = $notificar->fetchAll(); $count_notificacao = abs($notificar->rowCount()); if($count_notificacao==0){ echo '<li style="text-align:center;">não existe notificações no momento.</li>'; }else{ foreach($notificacao as $notif){ $consulta_conta = $db->query("select * from account.dbo.cabal_auth_table where UserNum='".$notif['usernum']."'")->fetchObject(); switch($notif['acao']){ case 'logadopremiado' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle red small">redeem</span>'.$notif['jogador'].' ganhou no Logado Premiado</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'mudarsenha' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle teal small">vpn_key</span>'.$consulta_conta->Nome.' alterou sua senha</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'distribuirpontos' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle cyan small">control_point</span>'.$notif['jogador'].' distribuiu seus pontos</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'girodasorte' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle brown small">star_border</span>'.$consulta_conta->Nome.' usou o giro da sorte</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'sistematpoint' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle green small">golf_course</span>'.$notif['jogador'].' recebeu seu tpoint por clique</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; case 'combo' : echo ' <li><a class="black-text" href="#!"><span class="material-icons icon-bg-circle amber small">videogame_asset</span>'.$notif['jogador'].' fez '.$notif['ExtraDetalhes'].' em sua primeira vez</a> <time class="media-meta grey-text darken-2" datetime="2015-06-12T20:50:48+08:00"> '.Data::ExibirTempoDecorrido(date("Y-m-d H:i:s.B", strtotime($notif['regdate']))).'</time> </li>'; break; } } } ?> como eu faria para ser exibido todos os resultados registrados com o json_encode().
    • By fnatan
      Olá galera, novato em PHP aqui.
       
      Fiz uma classe e gostaria de ler o valor de uma determinada variável, porém essa variável será alterada por alguns métodos enquanto ela estiver instanciada, mas quando leio o valor dela essas alterações não são visualizadas.
       
      segue exemplo:
       
      <?php $test = new classeTeste; echo "valor inicial de myVar: ".$test->myVar."</br>"; $test->alterar_myVar(); echo "myVar após chamada do método: ".$test->myVar."</br>"; class classeTeste { public $myVar = 1000; public function alterar_myVar(){ $myVar = 20000; echo "Valor myVar foi alterado para: ".$myVar." pelo método alterar_myVar</br>"; } } ?> Valeu e Abraço!
    • By Edilson Chaves
      Ola amigos, uso curso a algum tempo, só que desta vez estou apanhando de algo que aparentemente e bem simples. Tenho certeza que estou esquecendo algum detalhe.
      To a 2 dias me debatendo com isto.
      Por isto estou pedindo ajuda.
       
      O que pretendo fazer e criar um novo registro que mostre a evoluçao do crecimento mensal projetando o ponto de equilibrio. Para isto eu preciso pegar a soma do mês anterior e acrescentar a soma do atual.
       
      Esta é a Procedure. Abaixo explico o quer nao esta funcionado.
       
      DROP PROCEDURE IF EXISTS sp_Monitorado;
      DELIMITER $$
          CREATE PROCEDURE sp_Monitorado()
          BEGIN
              DECLARE done INT DEFAULT FALSE;
              DECLARE vVlrMesAtuPrv, vVlrMesAntPrv, vVlrMesAtuRea, vVlrMesAntRea, vPrevisto, vRealizado numeric(10,2);
              DECLARE vAnoAtu, vMesAtu, vOrdem, vAno, vMes INT;
              DECLARE vGrupo, vSubGrupo, vPessoa, vPessoaAtu VARCHAR(100);
              DECLARE cDados CURSOR FOR SELECT Ordem, Grupo, SubGrupo, Pessoa, Ano, Mes, Previsto, Realizado FROM vwresultadomonitoramento;
              DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
              OPEN cDados;
              read_loop: LOOP
                  FETCH cDados INTO vOrdem, vGrupo, vSubGrupo, vPessoa, vAno, vMes, vPrevisto, vRealizado;
                  IF done THEN
                     LEAVE read_loop;
                  END IF;
                  IF vOrdem <= 4 THEN
                      SET vVlrMesAtuPrv = vVlrMesAtuPrv + vPrevisto;
                      SET vVlrMesAtuRea = vVlrMesAtuRea + vRealizado;
                  INSERT INTO zzResultado VALUES (vOrdem, vGrupo, vSubGrupo, vPessoa, vAno, vMes, vPrevisto, vVlrMesAtuPrv);
                  END IF;
                  IF vOrdem = 4 THEN
                      SET vVlrMesAntPrv = vVlrMesAntPrv + vVlrMesAtuPrv;
                      SET vVlrMesAntRea = vVlrMesAntRea + vVlrMesAtuRea;
                      INSERT INTO zzResultado VALUES (99, vGrupo, 'PONTO DE EQUILIBRIO', vPessoa, vAno, vMes, vVlrMesAntPrv, vVlrMesAntRea);
                      SET vVlrMesAtuPrv = 0;
                      SET vVlrMesAtuPrv = 0;
                  END IF;
              END LOOP read_loop;
              CLOSE cDados;
          END;
      $$ DELIMITER;
       
      Quando co cursor entra nesta condiçao abaixo ele deveria pegar o valor acumulado anterior e acrescentar as variaveis (vVlrMesAntPrv, vVlrMesAntRea). So que o valor se perde e fica tudo zerado.
      Alguém pode me dizer onde estou errando.
      Anexo tem um print do resultado que pretendo ter
       
       IF vOrdem = 4 THEN
                      SET vVlrMesAntPrv = vVlrMesAntPrv + vVlrMesAtuPrv;
                      SET vVlrMesAntRea = vVlrMesAntRea + vVlrMesAtuRea;
                      INSERT INTO zzResultado VALUES (99, vGrupo, 'PONTO DE EQUILIBRIO', vPessoa, vAno, vMes, vVlrMesAntPrv, vVlrMesAntRea);
                      SET vVlrMesAtuPrv = 0;
                      SET vVlrMesAtuPrv = 0;
      END IF;
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.