Ir ao conteúdo
  • Cadastre-se

CypherNet

Membro Pleno
  • Posts

    33
  • Cadastrado em

  • Última visita

Tudo que CypherNet postou

  1. Private Sub PPreenchaComboBox()Using con As OleDbConnection = GetConnection()Trycon.Open()Dim sql As String = "SELECT IP, Nome FROM servidores"Dim cmd As OleDbCommand = New OleDbCommand(sql, con)Dim da As OleDbDataAdapter = New OleDbDataAdapterDim dt As DataTable = New DataTableda.SelectCommand = cmdda.Fill(dt)cmxNomeservidores.DisplayMember = "Nome"cmxNomeservidores.DataSource = dt'é só colocar para o label utilzar o mesmo datasource,'Sendo assim ele busca pra vocêlbl_IP.DataBindings.Add("Text", dt, "IP", False, DataSourceUpdateMode.OnPropertyChanged)Catch ex As ExceptionMsgBox(ex.Message)Finallycon.Close()End TryEnd UsingEnd Sub Com isso não precisa mais do método PleDados()
  2. (?si)\bCREATE\s*\bFUNCTION?\s*(?<owner>[a-zA-Z]*\.(?<function>[a-zA-Z]\w*) \w traz letras e todo tipo de caractere, você estava fechando o bloco com o ponto dentro
  3. Olhando melhor, o seu loop apaga a ultima leitura //Permaneça no loop enquanto line não for nulowhile((line = reader.ReadLine()) != null){ //Entrou no loop por que line não é nulo Console.WriteLine(line);}//Se saiu do loop e chegou aqui é porque o (line = reader.ReadLine()) == null, ou seja, line == null Ou seja, o ultimo ReadLine(), que é nulo, sobrescreve a informação anterior. Na boa, essa nem de longe é uma implementação de verificação de senha segura, nem prática, pelo que eu entendi cada senha em um arquivo texto?, arquivo que o usuário digita o nome?
  4. Amigo, a variável 'line' só existe dentro do escopo while, se você quiser utilizá-la fora você tem que declarar antes do while: string line = null; while( (line= reader.ReadLine()) != null) { Console.WriteLine(line); } senha_gerente = line;
  5. Inútil é tentar baixar um arquivo e tentar sobrescrever outro arquivo enquanto está sendo executado/aberto. Inútil é tentar reinventar a roda: ClickOnce faz isso pra você Inútil é pensar que os outros tem obrigação de ajudar
  6. Utilize o txt_id_Keypress para filtrar os caracteres, porque esse evento ocorre antes do afterupdate. Toda vez que o seu usuário digitar uma tecla esse evento dispara e aí você pode tratar o valor do caractere Detalhe: Sugiro mudar a aassertiva abaixo: If txt_id.Text = 0 Then... Para: If txt_id.Text = "0" Then... O vba faz conversão implícita somente quando você 'seta' uma variável e não quando você avalia o valor da variável: txt_id.Text = 123 ' o vba converte integer para stringMsgBox txt_id.Text ' exibe normalIf txt_id.Text = 123 then' não chega aquiEnd ifIf txt_id.Text = "123" ThenMsgBox "agora sim "End if
  7. CypherNet

    Algorítmo

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace exer20{ class Program { static double maior = 0; static double MaiorSalario(double salario) { if (salario > maior) { maior = salario; } return (maior); } static void Main(string[] args) { double salario = 0; double salarioAtual = 0; double maiorSalario = 0; int filhos = 0; int qntpessoas = 0; int qntAbaixo = 0 ; char resposta; Console.Write("Deseja Cadastrar os seus dados?(S/N): "); resposta = Convert.ToChar(Console.ReadLine()); if (resposta == 'N' || resposta == 'n') { Console.Write("Agradecemos a Preferência, Tchau!!"); Console.ReadKey(); } while (resposta == 'S' || resposta == 's') { Console.Write("Digite salário: "); salarioAtual = Convert.ToDouble(Console.ReadLine()); maiorSalario = MaiorSalario(salarioAtual); if (salarioAtual < 380) { qntAbaixo++; }; salario += salarioAtual; Console.Write("Digite n° filhos: "); filhos += Convert.ToInt32(Console.ReadLine()); qntpessoas++; Console.Write("Continuar Cadastrando (S/N)?: "); resposta = Convert.ToChar(Console.ReadLine()); if (resposta == 'N' || resposta == 'n') { Console.WriteLine("Média Salarial: " + (salario / (double)qntpessoas).ToString()); Console.WriteLine("Média de Filhos: " + ((double)filhos / (double)qntpessoas).ToString()); Console.WriteLine("Maior Salário: R$ " + maiorSalario); Console.WriteLine("Percentual Salário Abaixo de R$380,00: " + (((double)qntAbaixo/(double)qntpessoas) * 100).ToString() + '%'); Console.ReadKey(); } } } }} Então, assim resolve?
  8. Sim, por que a primeira posição do vetor é vetor[0] e não vetor[1]
  9. CypherNet

    Algorítmo

    Só para esclarecer, não pode usar Linq? Se não pode o seu erro é que você está utilizando variáveis para armazenar, talvez você devesse utilizar vetores ou listas para armazenar a sequência de valores e depois varrer o vetor para fazer a média, localizar o maior e etc. Da forma que está ele sobrescreve: Console.Write("Digite salário: ");//Toda nova leitura sobrescreve o valor anterior!salario = Convert.ToDouble(Console.ReadLine()); Console.Write("Digite n° filhos: ");//Toda nova leitura sobrescreve o valor anterior!filhos = Convert.ToInt32(Console.ReadLine());qntpessoas++; Console.Write("Continuar Cadastrando (S/N)?: ");resposta = Convert.ToChar(Console.ReadLine());
  10. Então é isso, foquei nos pontos e não nos segmentos, isso porque eles sempre serão paralelos nos eixos X e Y, bem bolado
  11. Converta tudo para segundos e faça a conta: Ex: Total: Ht:Mt:St Disponível Hd:Md:Sd Percentual =( ((Hd * 3600) + (Md * 60) + Sd) / ((Ht * 3600) + (Mt * 60) + St) * 100)
  12. https://dotnetfiddle.net/4rujcF Corrigido, os quatro pontos de cada retângulo checados duas vezes;
  13. corrigindo 50 posições: float[] vetor = new float[49];
  14. Verifica se existe colisão!Insira x de Q1:2Insira y de Q1:2Insira altura de Q1:5Insira largura de Q1:5Insira x de Q2:10Insira y de Q2:10Insira altura de Q2:2Insira largura de Q2:2Não houve colisão Corrigido,
  15. https://dotnetfiddle.net/4rujcF
  16. using System; public class Program { public static void Main() { Console.WriteLine("Verifica se existe colisão!"); Quadrado checaQ1 = new Quadrado(); Console.Write("Insira x de Q1:"); checaQ1.x = float.Parse(Console.ReadLine()); Console.Write("Insira y de Q1:"); checaQ1.y = float.Parse(Console.ReadLine()); Console.Write("Insira altura de Q1:"); checaQ1.altura = float.Parse(Console.ReadLine()); Console.Write("Insira largura de Q1:"); checaQ1.largura = float.Parse(Console.ReadLine()); Quadrado checaQ2 = new Quadrado(); Console.Write("Insira x de Q2:"); checaQ2.x = float.Parse(Console.ReadLine()); Console.Write("Insira y de Q2:"); checaQ2.y = float.Parse(Console.ReadLine()); Console.Write("Insira altura de Q2:"); checaQ2.altura = float.Parse(Console.ReadLine()); Console.Write("Insira largura de Q2:"); checaQ2.largura = float.Parse(Console.ReadLine()); Colisao col = new Colisao(checaQ1, checaQ2); if (col.ExisteColisao()) { Console.WriteLine("Colisão: BUMMMM"); } else { Console.WriteLine("Não houve colisão"); } } public class Colisao { public Colisao(Quadrado q1, Quadrado q2){ quad1 = q1; quad2 = q2; } Quadrado quad1; Quadrado quad2; public bool ExisteColisao() { if (quad1.x + quad1.largura > quad2.x) { return true; } if (quad2.x + quad2.largura > quad1.x) { return true; } if (quad1.y + quad1.altura > quad2.y) { return true; } if (quad2.y + quad2.altura > quad1.y) { return true; } return false; } } public class Quadrado { public float x {get;set;} public float y {get;set;} public float altura {get;set;} public float largura {get;set;} public Quadrado() { } public Quadrado(float px, float py, float alt, float larg){ x=px; y=py; altura = alt; largura = larg; } } }
  17. public class Program { public static void Main() { Random randomizador = new Random(); //Criar um Array Float com 50 posições float[] vetor = new float[50]; int valor = 0; //Atribuir valor nas posições for (int i = 0; i < 50; i++) { //Explicação: Você não disse de onde viriam os números //então gero números aleatórios, NextDouble()retorna um número decimal '0.xxxxx' //multiplico por 100, converto para float e armazeno no vetor vetor = (float)(randomizador.NextDouble() * 100); //Converto para int e armazeno na variável que acumula a soma valor+=(int)vetor; Console.Write("(float): '{0:000.000000}', ", vetor ); Console.Write("(int): '{0:000}', ", (int)vetor ); Console.WriteLine("Soma (int): '{0:00000}'", valor); //Console.Clear(); } Console.WriteLine("O valor do somatório: {0}", valor); Console.ReadLine(); } }
  18. Não deu pra enteder: protected override bool ProcessCmdKey(ref Message msg, Keys KeyData) { if (!jogar) { return false; } if (TxtPass.Text.ToLower().Contains(KeyData.ToString().ToLower())) { Acertou(KeyData.ToString()); } else { Errou(); } return base.ProcessCmdKey(ref msg, KeyData); } Talvez este seja o problema, está recursivo, chama ele mesmo infinitas vezes e sem saída. quando exibe a MessageBox o programa para e atualiza o form
  19. Falta dizer os passos que foram tomados para gerar o erro, mas mesmo assim: 1) Tente obter os dados da linha do 'e' ou 'sender' ao invés de tentar ir direto no objeto 'dg_' 2) Ao invés do CurrentRow, utilize 'SelectedRows', teste se possui selecionados 'SelectedRows.Count() > 0' e para obter os dados vá SelectedRow(0). Porque as vezes o clique no grid não seleciona o registro, por exemplo um clique no cabeçalho da coluna
  20. Tem que instalar o driver http://www.microsoft.com/en-us/download/details.aspx?id=13255 Cheque a versão 32, 64bits,
  21. Dim proc As New System.Diagnostics.Process() proc = Process.Start("C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe", "http://www.hotmail.com")
  22. Parece que o que você está filtrando não está sendo passado para o reportviewer, poste o código aí
  23. @Basole, Entendi, mas mesmo assim não anula o que eu disse: Excel e Access não foram feitos para suportar concorrência. Dá forma que você colocou parece que o Access no Back End é um Servidor de banco, ele é um arquivo de banco! Exemplo: 1.Coloque o Arquivo do Access em uma máquina Linux otimizada para file server 2. Crie um compartilhamento da pasta onde está o arquivo 3. Na sua máquina Windows, com tudo instalado (Excel, Access) mapeie uma unidade 'X:\' apontando para o caminho de rede (Exemplo'\\MaquinaLinux\PastasGerais\PastaMeuBanco\') da pasta do FileServer Linux, 4. Na sua connectionString forneça o caminho do banco 'x:\meubanco.mdb' 5. Pronto! Tudo funcionando redondinho Agora, neste cenário vamos as situações: Situação 1 - O estoquista insere e altera os dados no Excel (cliente 1) do seu computador e neste momento o Supervisor resolve consultar de outro computador também via Excel (cliente 2) os dados já inseridos. Quando o cliente 1 Abre a conexão com o banco e preenche um recordset, o Cliente 2 não tem conhecimento, de que já existe um recordset aberto, por que o 'servidor' não informa e não cria uma fila de acesso, é tudo simultâneo, daí a possibilidade de corromper. Quando no Cliente 1 o rs.State = adStateOpen não existe forma de passar esta informação para o cliente 2, então os dois podem coexistir em máquinas diferentes, são dois cursores simultâneos! Situação 2 - Somente um cliente (leia-se: programa excel) todo o tempo Mesmo Abrindo e fechando todas as conexões com o banco nas operações de Consultar, Incluri, Exclur e alterar, existe o risco do Access Corromper sim, mesmo com tudo em uma mesma máquina (Access e Excel). Outros processos do Sistema Operacional podem estar fazendo uma leitura do arquivo no momento, por exemplo: antivírus, indexação de conteúdo, enfim... Só pra finalizar, eu mesmo já utilizei bastante o Access + Vba e Access + VB5/6, acredite, passei na pele cliente ligando toda vez que o arquivo do Access corrompia, mesmo fazendo a reindexação, reparação, controle das conexões e recordsets abertos o que "salvava" era o backup. que detalhes?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!