Jump to content
marcofavero3

C# MySQL problema na pesquisa de crud

Recommended Posts

Olá pessoal, estou criando um sistema de um Mercado com no visual studio utilizando o workbench como banco de dados, tenho tido o problema na hora de colocar o botão PESQUISAR meu programa localiza um erro no código e não sei resolver, infelizmente sem o pesquisar não consigo testar o alterar e nem o botão excluir, visto que o botão cadastrar já está 100% ok.

vou colocar meu  código e meu banco de dados para que possam conferir, eu necessito de ajuda pois não estou conseguindo resolver e não consigo mais entender o que esta acontecendo, obrigado desde já, e desculpe minha falta de conhecimento, ainda estou engatinhando em c# e mysql.

Meu banco se chama Mercado e possui 3 tabelas, sendo elas produto, caixa e venda, por hora tenho enfrentado esse problema no produto na hora de pesquisar o mesmo, o código vai pra parte do código que pintei em vermelho, e essas 2 linhas mais acima pintadas de verde estão no mínimo duvidosas..

 

estou upando 2 fotos, uma com o botão pesquisar e outra com o botão excluir.

 

 

Código do botão Pesquisar ::::::

 

 public consulta()
        {
            InitializeComponent();
        }

        MySqlConnection conexao = null;
        private string strCon = ("Persist Security Info = True; server=localhost;database=mercado;uid=root;");
        private string strMysql = string.Empty;
        MySqlDataAdapter da;
        DataTable produto;          (Field 'consulta.produto' is never assigned to, and will always have it default value null)
        MySqlDataReader dr;     (aqui consta que o field consulta nunca foi usado)


        private void consulta_Load(object sender, EventArgs e)
        {

        }

        private void btn_pesquisa_Click(object sender, EventArgs e)
        {
            conexao = new MySqlConnection(strCon);
            MySqlCommand comando = new MySqlCommand(strMysql, conexao);
            strMysql = "SELECT FROM * produto where idproduto = " + txt_pesquisa.Text;
            conexao = new MySqlConnection(strCon);
            da = new MySqlDataAdapter(strMysql, conexao);
            da.Fill(produto); (An unhandled exception of type 'System.ArgumentNullException' occurred in System.Data.dll

Additional information: Valor não pode ser nulo.)

            try
            {
                if(txt_pesquisa.Text == string.Empty)
                {
                    throw new Exception("Digite o Código");
                }
                conexao.Open();
                conexao = new MySqlConnection(strCon);
                MySqlDataReader dr = comando.ExecuteReader();

                if (dr.HasRows == false)
                {
                    throw new Exception("Código Inválido");
                }
                dr.Read();
                txt_cod.Text = Convert.ToString(dr["idproduto"]);
                txt_nome.Text = Convert.ToString(dr["nome"]);
                txt_valor.Text = Convert.ToString(dr["preco"]);
                txt_qnt.Text = Convert.ToString(dr["quantidade"]);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                conexao.Close();
            }
        }

pesquisar.jpg

alterar.jpg

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 gersonab
      Bom dia a todos, pode parecer um erro comum, porém não encontrei ainda a solução, o que acontece, preciso unir 4 tabelas, até aí tudo tranquila, porém das 4 pode acontecer de unir somente duas, isto porque posso ter ou não um item ou dois, tipo - tenho as tabelas atividade - tarefa - cliente e trabalho, quando cadastro uma atividade eu cadastro a tarefa em conjunto, porém não necessariamente o cliente e ou trabalho, a princípio não estou conseguindo pq o rec_cli e ou rec_proc   podem estar vazio. não estou sabendo como fazer, se teria que colocar mais duas tabelas e novos select.
      segue como esta.
      <?php $usuid=$_SESSION['UsuarioID']; $consulta = $pdo->query("SELECT rec.rec_id, rec.rec_id_de, rec.rec_para, rec.rec_cli, rec.rec_proc, rec.rec_data, rec.rec_ass, rec.rec_tar, rec.rec_text, cli.idc, cli.nomec, proc.idpr, proc.proces, prof.idp, prof.nomep, taref.idpar, taref.tarefa FROM rec LEFT JOIN prof ON prof.idp=rec.rec_id_para LEFT JOIN taref ON taref.idtar = rec.rec_tar LEFT JOIN cli ON cli.idc = rec.rec_cli LEFT JOIN proc.idpr = rec.rec_proc WHERE rec.rec_id_de = $usuid ORDER BY rec.rec_id DESC"); while ($user = $consulta->fetch(PDO::FETCH_ASSOC)) { $idtar = $user['idtar']; $tarefa = $user['tarefa']; $nomep = $user['nomep']; $rec_data = $user['rec_data']; $rec_tar = $user['rec_tar']; $rec_text = $user['rec_text']; $rec_id = $user['rec_id']; $rec_ass = $user['rec_ass']; $proces = $user['proces']; $nomec = $user['nomec']; ?> espero que tenham entendido.
    • By Ferdz-Agencia-Digital
      @Matheus Tavares
       
      Estou montando uma API para usar com BD MySQL, mas futuramente migraremos o BD para MongoDB... deverei mudar muitas coisas da API ? Terei muito retrabalho ?
       
      O que acontece é que o projeto já existe e atualmente o BD é em MySQL e APIs em PHP... mas o projeto será migrado para a stack  MERN (MongoDB, Express, React e Node).
       
      A questão não é só performance, mas sim poder modernização pois o projeto irá se expandir precisa ser melhor escalável e a STACK será todo refeita, como disse acima, será usada MERN.
    • By FerdzFernando
      Estou montando uma API para usar com BD MySQL, mas futuramente migraremos o BD para MongoDB... deverei mudar muitas coisas da API ? Terei muito retrabalho ?
       
      O que acontece é que o projeto já existe e atualmente o BD é em MySQL e APIs em PHP... mas o projeto será migrado para a stack  MERN (MongoDB, Express, React e Node)
    • By gersonab
      Boa tarde, preciso fazer uma busca por um ou mais itens, consigo fazer a busca pelo mês e ano, porém se eu quiser colocar tb a pessoa e mais uma condição não esta dando certo.
      <?php $mes=(int)$_POST['mes']; $ano=(int)$_POST['ano']; $idp=(int)$_POST['idp']; $pagoparc=$_POST['pagoparc']; $consulta1 = $pdo->query("SELECT parcelas.idpar, parcelas.procid, parcelas.procli, parcelas.proadv, parcelas.valorp,parcelas.valorpe, parcelas.valoradv, parcelas.valorpago, parcelas.datapar, parcelas.datapago, parcelas.pagoparc, parcelas.obspar, cli.idc, cli.nomec, proc.idpr, proc.proces, prof.idp, prof.nomep FROM parcelas LEFT JOIN cli ON cli.idc = parcelas.procli LEFT JOIN proc ON proc.idpr = parcelas.procid LEFT JOIN prof ON prof.idp = parcelas.proadv WHERE Month(parcelas.datapar) = $mes AND YEAR(parcelas.datapar) = $ano AND parcelas.proadv LIKE '%$idp%' AND parcelas.pagoparc LIKE '%$pagoparc%' ORDER BY parcelas.idpar ASC"); while ($user1 = $consulta1->fetch(PDO::FETCH_ASSOC)) { ?> desta forma retorna todos os resultados independente do mês  e ano
       
      <?php $mes=(int)$_POST['mes']; $ano=(int)$_POST['ano']; $idp=(int)$_POST['idp']; $pagoparc=$_POST['pagoparc']; $consulta1 = $pdo->query("SELECT parcelas.idpar, parcelas.procid, parcelas.procli, parcelas.proadv, parcelas.valorp,parcelas.valorpe, parcelas.valoradv, parcelas.valorpago, parcelas.datapar, parcelas.datapago, parcelas.pagoparc, parcelas.obspar, cli.idc, cli.nomec, proc.idpr, proc.proces, prof.idp, prof.nomep FROM parcelas LEFT JOIN cli ON cli.idc = parcelas.procli LEFT JOIN proc ON proc.idpr = parcelas.procid LEFT JOIN prof ON prof.idp = parcelas.proadv WHERE Month(parcelas.datapar) = $mes AND YEAR(parcelas.datapar) = $ano AND parcelas.proadv = $idp AND parcelas.pagoparc = $pagoparc ORDER BY parcelas.idpar ASC"); while ($user1 = $consulta1->fetch(PDO::FETCH_ASSOC)) { ?> já desta forma me retorna este erro :
      Fatal error: Call to a member function fetch() on a non-object in
       
      lembro que nesta busca posso ter ou não o idp e ou pagoparc
    • By Sapinn
      Fala galera, como faço para enviar multiplos campos com o mesmo name ?
       
      O codigo no form é:
      <?php foreach($produtos as $item)?>
          <form action="enviar.php">
               <input name="nome_produto[]">
         </form>
      <?php endforeach;?>
       
      e no meu arquivo para enviar:
      $produtos = $_POST['nome_produtos'];
       
      foreach($produtos as $item){
           //Aqui eu envio os dados
      }
       
      O problema é que ele so está pegando o valor inserido no primeiro campo, nos demais ele não pega
×

Important Information

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