Retornar dados de uma pagina dentro do Chome e colocar em um TextBox com VB.NET

Estou montando uma aplicação usando Windows Forms (VB.NET) onde tenho um botão que chamo uma URL no Chrome com o seguinte comando:

Private Sub Btn_abrir_site_Click(sender As Object, e As EventArgs) Handles Btn_abrir_site.Click         Dim url As String = “https://www.rico.com.você/dashboard/tesouro-direto/“         Process.Start(url)     End Sub 

No Chrome, acesso com meu login manualmente (prefiro assim).

E ao realizar uma série de operações, chega a um determinado momento que preciso passar os dados que o site me apresenta, após as operações, para o aplicativo.

Aí que está o problema.

No código abaixo por exemplo:

inserir a descrição da imagem aqui

Preciso retornar os valores 12,36 e 8806,84 de forma automática e colocar em TextBox.

Vi exemplos que mostram com WebBrowser, porém eu prefiro que seja com o Chrome. E nesses exemplos, ele abre a página e já obtém os dados. Eu preciso trabalhar na página muito e só depois baixar os dados programaticamente.

Dados Pré carregados com JQUERY em Um MODAL

Eu tenho uma tabela Dinâmica, uso o TWIG para preencher os dados automaticamente, nessa tabela eu tenho em cada Linha 2 botões, um de Editar, e o Outro de excluir, quando eu clico no botão Editar Abro Um modal, eu gostaria de saber como eu faço para que os dados daquela linha especifica que foi clicado no botão de editar serem pre carregados nos inputs do modal, eu consigo preencher os dados usando JQuery, mas o problema é que só funciona pra Primeira Linha.

 <table width="100%" class="table table-hover" id="unidades-grupo" referral="0" style="border-top: 0;">                     <thead>                          <tr>                             <th>ID Unidade</th>                             <th>Nome</th>                             <th>CPF/CNPJ</th>                             <th>Data Cadastro</th>                             <th>ID Grupo</th>                             <th></th>                             <th></th>                         </tr>                     </thead>                     <tbody>                          <input type="hidden" id="id_unidade_dell" value="9">                             <tr>                                 <td onclick="redirectUnidade('9')">9</td>                                 <td onclick="redirectUnidade('9')">Filial Redenção - 002</td>                                 <td onclick="redirectUnidade('9')">102938475657482</td>                                 <td onclick="redirectUnidade('9')">2019-01-17T19:03:11.000Z</td>                                 <td onclick="redirectUnidade('9')">1</td>                                  <td style="text-align: center;"><i data-toggle="modal" data-target="#edita_unidade" id="icon_edit_uni"  onclick="edit_unidade(9)" idUnidade='9' class="fa fa-edit editaGrupo"title="Editar Unidades"></i></td>                                  <td style="text-align: center;"><i id="delete_uni" onclick="del_unidade(9)" class="fa fa-trash grupo-del"  title="Deletar Unidade"></i></td>                               <input type="hidden" id="dados_unidade"  cnpjUnidade="102938475657482"  nomeUnidade="Filial Redenção - 002">                             </tr>                           <input type="hidden" id="id_unidade_dell" value="11">                             <tr>                                 <td onclick="redirectUnidade('11')">11</td>                                 <td onclick="redirectUnidade('11')">Filial New York</td>                                 <td onclick="redirectUnidade('11')">66449484756</td>                                 <td onclick="redirectUnidade('11')">2019-01-19T22:12:20.000Z</td>                                 <td onclick="redirectUnidade('11')">1</td>                                  <td style="text-align: center;"><i data-toggle="modal" data-target="#edita_unidade" id="icon_edit_uni"  onclick="edit_unidade(11)" idUnidade='11' class="fa fa-edit editaGrupo"title="Editar Unidades"></i></td>                                  <td style="text-align: center;"><i id="delete_uni" onclick="del_unidade(11)" class="fa fa-trash grupo-del"  title="Deletar Unidade"></i></td>                               <input type="hidden" id="dados_unidade"  cnpjUnidade="66449484756"  nomeUnidade="Filial New York">                             </tr>                                                                            </tbody>                 </table> 
<script> function edit_unidade(id){   $  ('#icon_edit_uni').on('click', function(){     var nome = $  (this).attr('nomeUnidade');     // alert(nome);     var cnpj = $  (this).attr('cnpjUnidade');     // alert(cnpj);     $  ('#cnpj_').attr('value', cnpj);     $  ('#unidade_').attr('value', nome);     $  ('#edit_unidade_modal').attr('value', id);   }); } </script>

Modelando banco de dados de oferta de ensino

Estou estudando banco de dados e cheguei em um problema que não estou conseguindo sair dele. O problema é:

“Uma escola realiza ofertas de nível de ensino anualmente. A cada ano, um ou mais níveis de ensino (ensino medio, ensino fundamental) são ofertados. Cada nível de ensino pode ser ofertado em diferentes turnos (matutino, vespertino etc). Cada turno possui ofertas de diferentes séries do nível de ensino (por exemplo, 1ª série do ensino médio pode ser ofertado tanto noturno quanto vespertino; 8º ano do ensino fundamental pode ser ofertada somente noturno). Além disso, cada série possui diferentes turmas. Sendo assim, elabore um banco de dados para para as ofertas anuais”.

Pensando nesse contexto, eu modelei as primeiras tabelas conforme a imagem abaixo. Entretanto, não estou conseguindo criar uma lógica para modelar a parte das ofertas anuais da escola.

As tabelas que eu criei até então são para armazenar os valores de níveis de ensino, série, turno e os relacionamentos n:n.

Se alguém puder me ajudar nessa lógica de como modelar a parte de oferta, eu agradeço.

IMAGEM:

inserir a descrição da imagem aqui

Validação de dados SQL [pendente]

Problema: Não estou conseguindo retornar o true na minha validação de email através do exemplo abaixo.

Modal: quero que quando passar em minha condição ele retorna true, acredito que minha consulta esteja errada. public class LoginModel { public string Email { get; set; } public string Senha { get; set; }

    public bool ValidarLogin()     {         // Comando para fazer a consulta         string consultaSql = $  "Select VendedorId From Estudo.Vendedores Where Email='{Email}' and Senha='{Senha}'";         DAL Acessar = new DAL();         DataTable carregaTabela = new DataTable(consultaSql); // Comando para executar a consulta.          if (carregaTabela.Rows.Count == 1)         {             return true;         }         else         {             return false;         }     } }  

Controller responsavel pelo login:

    [HttpPost]     public IActionResult Login(LoginModel login)     {         bool loginOk = login.ValidarLogin(); // loginOk esta retornando false         return View();     } 

OBS: Esse comando select é de um curso que estou fazendo.

inserir a descrição da imagem aqui

Como colocar dados de uma tabela em php no google charts

Criei uma tabela de registros php com mysql onde tenho 3 colunas, Titulo. Descrição e data. no titulo so existe 3 opções possíveis para um item inserir a descrição da imagem aqui

E eu utilizei o script do google charts, porem não achei nenhum método de inserir essas 3 informa coes (Ativo, Inativo, Suspenso) no gráfico

código php que mostra as informações na tabela

<?php	 	$  pdo_statement = $  pdo_conn->prepare("SELECT * FROM posts ORDER BY id DESC"); 	$  pdo_statement->execute(); 	$  result = $  pdo_statement->fetchAll();  	 ?> <div style="text-align:right;margin:20px 0px;"><a href="add.php" class="button_link"><img src="crud-icon/add.png" title="Add New Record" style="vertical-align:bottom;" /> Create</a></div> <table class="tbl-qa">   <thead> 	<tr> 	  <th class="table-header" width="20%">Title</th> 	  <th class="table-header" width="40%">Description</th> 	  <th class="table-header" width="20%">Date</th> 	  <th class="table-header" width="5%">Actions</th> 	</tr>   </thead>   <tbody id="table-body"> 	<?php 	if(!empty($  result)) {  		foreach($  result as $  row) { 		 	?> 	  <tr class="table-row"> 		<td><?php echo $  row["post_title"]; ?></td> 		<td><?php echo $  row["description"]; ?></td> 		<td><?php echo $  row["post_at"]; ?></td> 		<td><a class="ajax-action-links" href='edit.php?id=<?php echo $  row['id']; ?>'><img src="crud-icon/edit.png" title="Edit" /></a> <a class="ajax-action-links" href='delete.php?id=<?php echo $  row['id']; ?>'><img src="crud-icon/delete.png" title="Delete" /></a></td> 	  </tr>          <?php 		} 	} 	?>

codigo do grafico do google charts que eu quero adaptar para receber as informacoes (Ativo, Inativo, Suspenso) vinda do php

<html>   <head>     <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>     <script type="text/javascript">       google.charts.load('current', {'packages':['corechart']});       google.charts.setOnLoadCallback(drawChart);        function drawChart() {          var data = google.visualization.arrayToDataTable([           ['Task', 'Hours per Day'],           ['Work',     11],           ['Eat',      2],           ['Commute',  2],           ['Watch TV', 2],           ['Sleep',    7]         ]);          var options = {           title: 'My Daily Activities'         };          var chart = new google.visualization.PieChart(document.getElementById('piechart'));          chart.draw(data, options);       }     </script>   </head>   <body>     <div id="piechart" style="width: 900px; height: 500px;"></div>   </body> </html>

Retornar dados de tabelas diferentes – Laravel

Boa noite! Estou tentando recuperar os dados de algumas tabelas em uma view e dessa forma eu consigo recuperar o das duas primeiras. Porém, quando uso o foreach referente a tabela Skills, é dado o erro informando que a variável que designei não está definida. Como posso estar fazendo para exibir dados de tabelas variadas em uma view específica? Essa forma está incorreta? Agradeço qualquer ajuda.

Exemplo da Controladora

Dados do formulário desaparece quando requisitado pela segunda vez

Espero que eu consiga explicar a complexidade do problema. Na primeira requisição que eu faço o formulário envia corretamente e os dados são preenchidos, como mostra na imagem abaixo.

Formulario enviado

Porém quando eu tento novamente enviar o formulário com novas informações o formulário fica vazio, como na imagem abaixo.

Formulario com erro

Primeiro eu envio essas informaçōes no HTML

cart-button.html

  <form (ngSubmit)="agreeCart()">         <ion-card>             <ion-card-header style="background: #5474B3;" text-center>                 <span text-center style="color: #ffffff!important;"> Forma de Entrega do Ingresso</span>             </ion-card-header>             <ion-list radio-group name="radio" [(ngModel)]="formaEntregaSelecionada">                 <ion-item *ngFor="let fP of formaEntregaArray">                     <ion-radio [value]="fP.type" item-left (ionSelect)="onChangeEntrega(fP)"></ion-radio>                     <ion-label class="myCustomSelect">{{ fP.value }}</ion-label>                 </ion-item>             </ion-list>         </ion-card>          <ion-card>             <ion-card-header style="background: #5474B3;" text-center>                 <span text-center style="color: #ffffff!important;"> Forma de Pagamento</span>             </ion-card-header>             <ion-list radio-group name="radio" [(ngModel)]="formaPagamentoSelecionada">                 <ion-item *ngFor="let fP of formaArray" >                     <ion-radio  [value]="fP.type" item-left (ionSelect)="onChange(fP)"></ion-radio>                     <ion-label class="myCustomSelect">{{ fP.value }}</ion-label>                 </ion-item>                 <div class="validation-errors">                     <ng-container *ngIf="errorSubscribe != null">                         <div class="error-message">                             {{ errorSubscribe.formaPagamento }}                         </div>                     </ng-container>                 </div>             </ion-list>         </ion-card>          <form action="" method="post" name="pay" id="form">             <ion-card *ngIf="openCard == true">                 <ion-row hidden>                     <ion-item>                         <ion-label text-center></ion-label>                         <ion-input id="email" name="email" value="{{ email }}" type="email"></ion-input>                     </ion-item>                 </ion-row>                 <ion-row hidden>                     <ion-label for="docType">Document type:</ion-label>                     <select id="docType" data-checkout="docType"></select>                 </ion-row>                 <ion-row hidden>                     <ion-label text-center></ion-label>                     <ion-item>                         <ion-input type="text" id="docNumber" data-checkout="docNumber" placeholder="12345678" value="{{ cpfMercadoPago }}"></ion-input>                     </ion-item>                 </ion-row>                 <ion-row>                     <ion-item>                         <!--Forma super errada de fazer uma funcao de verificacao-->                         <ion-icon style="width: 30px;padding-top:10px;" item-start>                             <ion-icon name="ios-card" *ngIf="showIcon == null" color="ticket-blue-rainbow"></ion-icon>                         </ion-icon>                         <ion-label stacked> Numero Cartão</ion-label>                         <ion-input  type="tel"  placeholder="Ex:0000 0000 0000 0000" id="cardNumber" data-checkout="cardNumber" [brmasker]="{mask: '0000 0000 0000 0000', len:19}" [(ngModel)]="nmCartao" [ngModelOptions]="{standalone: true}" (ionChange)="runTimeChange(nmCartao)"                                     placeholder="4509 9535 6623 3704" onselectstart="return false" onpaste="return false"                                     onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false"                                     autocomplete=off></ion-input>                     </ion-item>                 </ion-row>                 <ion-row>                     <ion-item>                         <ion-icon name="ios-person" item-start color="ticket-blue-rainbow"></ion-icon>                         <ion-label stacked> Titular do Cartão</ion-label>                         <ion-input placeholder="Ex: Péttrin Nazario Paulo" id="cardholderName" data-checkout="cardholderName" [(ngModel)]="titular" [ngModelOptions]="{standalone:true}" ></ion-input>                     </ion-item>                     <div class="validation-errors">                         <ng-container *ngIf="errorSubscribe != null">                             <div class="error-message">                                 {{ errorSubscribe.titular }}                             </div>                         </ng-container>                     </div>                 </ion-row>                 <ion-row>                     <ion-item>                         <ion-icon name="ios-cart" item-start color="ticket-blue-rainbow"></ion-icon>                         <ion-label stacked> Codigo de Seguranca</ion-label>                         <ion-icon name="asterisk"></ion-icon>                         <ion-input  type="number" [brmasker]="{mask: '0000', len:4}" id="securityCode" data-checkout="securityCode" [(ngModel)]="codSeguranca" [ngModelOptions]="{standalone:true}" placeholder="123"                                     onselectstart="return false" onpaste="return false" onCopy="return false" onCut="return false"                                     onDrag="return false" onDrop="return false" autocomplete=off></ion-input>                     </ion-item>                 </ion-row>                 <ion-grid>                     <ion-label text-center> Vencimento Cartao</ion-label>                     <ion-row>                         <ion-col>                             <ion-item>                                 <ion-label stacked> Mes</ion-label>                                 <ion-input  type="number" min="0" max="12" id="cardExpirationMonth" data-checkout="cardExpirationMonth" placeholder="12" [(ngModel)]="month" [ngModelOptions]="{standalone:true}" [brmasker]="{mask: '00', len:2}" placeholder="12"                                             onselectstart="return false" onpaste="return false" onCopy="return false" onCut="return false"                                             onDrag="return false" onDrop="return false" autocomplete=off></ion-input>                             </ion-item>                         </ion-col>                         <ion-col>                             <ion-item>                                 <ion-label stacked> Ano</ion-label>                                 <ion-input  type="number" min="1901" max="2035" id="cardExpirationYear" data-checkout="cardExpirationYear" placeholder="18" [(ngModel)]="year" [ngModelOptions]="{standalone:true}" [brmasker]="{mask: '00', len:2}"                                             onselectstart="return false" onpaste="return false" onCopy="return false" onCut="return false"                                             onDrag="return false" onDrop="return false" autocomplete=off></ion-input>                             </ion-item>                         </ion-col>                     </ion-row>                     <ion-item>                         <ion-label floating color="primary" interface="popover">Opções de Parcelamento</ion-label>                         <ion-icon name="pricetags"></ion-icon>                         <ion-select class="myCustomSelect" [(ngModel)]="formaVezes" [ngModelOptions]="{standalone:true}">                             <ion-option *ngFor="let p of parcelamentosArray" [value]="p.type"> {{ p.value}} </ion-option>                         </ion-select>                     </ion-item>                 </ion-grid>                 <div class="validation-errors">                     <ng-container *ngIf="errorSubscribe != null">                         <div class="error-message">                             {{ errorSubscribe.parcelamento }}                         </div>                     </ng-container>                 </div>             </ion-card>         </form>         <!--/ Fim do formulario de cartao-->           <button class="button" ion-button block *ngIf="cart.moipPublicKey != null" (click)="subscribeMoip()" color="dark">Finalizar Compra</button>         <button class="button" ion-button block *ngIf="cart.mercadoPagoPublicKey != null" (click)="subscribeMercadoPago()" color="dark">Finalizar Compra</button>     </form> 

Quando eu clico em Finalizar Compra 2 metodos são chamados, o primeiro seria <form (ngSubmit)="agreeCart()">(no Começo do formulário), enquanto esse metodo é chamado

agreeCart() {         let alert = this._alertCtrl.create({             title: "Confirmação",             message: "Desejar confirmar compra?",             buttons: [                 {                     text: "Sim",                     handler: value => {                         this.onTapBuyCart();                     }                 },                 {                     text: "Não",                     handler: value => {}                 }             ]         });         alert.present();     } 

Uma segunda funcao é chamada, nela é criado um token através do (click)="subscribeMercadoPago()"

public subscribeMercadoPago() {         console.log(Mercadopago);         Mercadopago.setPublishableKey("TEST-XXXX-XXXX-XXXX-SECRET");         Mercadopago.getIdentificationTypes();         Mercadopago.getPaymentMethod({"bin": '5555'}, function (status, response) {             console.log("status: "+status);             console.log("response: "+response[0].id);         });         let form = document.querySelector('#form');         console.log(form);         let _self = this;         Mercadopago.createToken(form, function (status, response) {             console.log("status token: "+status);             console.log("hash", response.id);             console.log(response);             _self.hashCartao = response.id;             console.log(_self.hashCartao + ' VALIDO');         });     } 

Resumindo, enquanto eu executo a primeira função uma segunda é chamada para criar um token.

Caso o usuário aceite a primeira opção da função agreeCart ele é redirecionado para outra função,

 public cartPay() {     this._cartProvider          .payCartButtonMercadoPago(              this.formaPagamentoSelecionada,              this.titular,              this.formaVezes,              this.hashCartao          )          .subscribe(              (cart: any) => {                  loader.dismiss();                  this.navCtrl.setRoot(SucessCartPage, { cart });              },              error1 => {                  var arr = Object.keys(error1.error.errors).map(key => ({                      type: key,                      value: error1.error.errors[key]                  }));                  this.errorSubscribe = error1.error.errors;                  this.errorJson = arr;                  console.log(error1);                  loader.dismiss();                  let toast = this._toastCtrl.create({ message: "Ocorreu um erro" , duration:3000 });                  toast.present();                  Mercadopago.clearSession();              }          );  } 

Essa ultima função envia dados junto com o token que foi criado pelo o Html + subscribe mercadoPago(){} e manda para a Api(Final do codigo).

Por fim, a grande pergunta é, porque as informaçoes não são passadas pelo html na 2 vez que é requisitado? Notasse que possui uma linha na primeira imagem que fica assim

<!--bindings={   "ng-reflect-ng-if:"true"}--> 

na segunda imagem a linha ja recebe false…

testar dados antes de gravar no banco

Dúvida de php com mysql: Tenho uma rotina em php que está funcionando, gravando os dados numa tabela. Agora surgiu a necessidade de fazer dois testes antes da gravação, e eu não estou conseguindo ter idéia de como fazer, por isso vou postar no próprio código pra ver se entendem. O primeiro teste, é ver se o número escolhido, já foi selecionado (variável numero), e caso isso ocorra, não gravar. O outro teste é impedir que o mesmo usuário (usuário apostador)faça mais de uma aposta. Segue código:

// validação (bem simples, só pra evitar dados vazios) if (empty($ data_hora) || empty($ apostador) || empty($ telefone) || empty($ numero)) { echo “Volte e preencha todos os campos”; exit; } $ hoje = date(“d-m-Y H:i”); $ limite = (’08-03-2019 16:35′); if (strtotime($ hoje) >= strtotime($ limite)){ echo “Esgotado o horario limite. Aguarde para o próximo sorteio!”; exit; }

// a data vem no formato dd/mm/YYYY // então precisamos converter para YYYY-mm-dd

// insere no banco $ PDO = db_connect();

// Acredito que esse teste deva ser feito aqui, antes de gravar, mas é só um palpite, pois tô mais perdido do que padre (alguns) em boate

//verificar se apostador e numero já existem na tabela, e caso exista, retornar o fluxo

$ sql = “INSERT INTO palpites(data_hora, apostador, telefone, numero) VALUES(:data_hora, :apostador, :telefone, :numero)”; $ stmt = $ PDO->prepare($ sql); $ stmt->bindParam(‘:data_hora’, $ data_hora); $ stmt->bindParam(‘:apostador’, $ apostador); $ stmt->bindParam(‘:telefone’, $ telefone); $ stmt->bindParam(‘:numero’, $ numero);

if ($ stmt->execute()) { header(‘Location: index.php’); } else { echo “Erro ao cadastrar”; print_r($ stmt->errorInfo());

Java: Erro ao recuperar dados de ResultSet, mesmo a query estando correta

Meu problema é o seguinte:

Estou fazendo uma aplicação Java integrada com o banco de dados H2.

Eu faço uma query via “PreparedStatement” e salvo em um ResultSet. Até aí tudo certo, nenhuma exception é gerada.

No método seguinte, eu uso os métodos get… do ResultSet para pegar cada um dos valores das colunas retornados.

Mas acontece a seguinte exception “org.h2.jdbc.JdbcSQLException: No data is available [2000-197]”

Ok, está dizendo que o ResultSet está vazio. Mas a query está correta e deveria retornar um valor. Como vocês podem ver no print abaixo que fiz da tela do H2, fazendo a mesma query:

Print de tela do H2 Engine

E esse é o método onde eu tento extrair os valores resultantes da query:

private ContaCorrente montarConta(ResultSet resultSet) {          System.out.println("ResultSet no montar conta: "+ resultSet);          ContaCorrente conta = new ContaCorrente();         Class estaClasse = getClass();          try{         conta.setAgencia( resultSet.getInt(COLUNA_AGENCIA), estaClasse);         conta.setNumero( resultSet.getInt(COLUNA_NUMCONTA), estaClasse);         conta.setCliente( resultSet.getInt(COLUNA_CLIENTE), estaClasse);         conta.setChqEspecial( resultSet.getInt(COLUNA_CHQESPECIAL));         conta.setPacote( resultSet.getInt(COLUNA_PACOTE));         conta.setSaldo( resultSet.getDouble(COLUNA_SALDO), estaClasse);         conta.setSenha( resultSet.getInt(COLUNA_SENHA), estaClasse);         conta.setDtAbertura( resultSet.getDate(COLUNA_DTABERTURA), estaClasse);          }catch(SQLException e){             System.err.println("Falha no banco de dados ao recuperar conta corrente");             System.err.println(e);         }catch (Exception e){             System.err.println("Falha geral ao recuperar conta corrente");         }          return conta;     } 

O código de teste da query na main:

public static void main(String[] args) {

int agencia=4512; int conta=6918;  ContaControler control = new ContaControler(); ContaCorrente conta1 = new ContaCorrente(); conta1 = control.getContaCorrente(4512, 6918);  System.out.println(conta1.getAgencia()); System.out.println(conta1.getNumConta()); 

}

E esse é o print de resultado:

” ResultSet no montar conta: rs0: org.h2.result.LocalResult@d041cf columns: 8 rows: 1 pos: -1

0 //ISSO AQUI É O PRINT DO NÚMERO DE AGÊNCIA NO MAIN

0 // E ESSE É O DA CONTA

//ABAIXO: O RESULTADO DO “CATCH” DO TRY-CATCH

Falha no banco de dados ao recuperar conta corrente

org.h2.jdbc.JdbcSQLException: No data is available [2000-197] “

Já olhei o Javadoc do Resultset e tentei algumas coisas, mas não descobri até agora qual pode ser o problema. Palpites?s

Copiar e Colar dados por data – Excel VBA

Preciso mover alguns dados de uma planilha para a outra de acordo com a data, mas a selação que eu fiz usando o comando IF só seleciona a última célula que atinge este critério ignorando as outras.

O que eu tenho até aqui:

Sub Copiar()  Dim range1 As Range  Set range1 = Range("k56:k58")  For Each cell In range1 If cell.Value = Range("R55").Value Then cell.Offset(0, 2).Select Selection.Copy Sheets("Plan2").Activate Range("r56").Select ActiveSheet.Paste  End If Next End Sub