none
erro ao utilizar o método Pesquisar com MySQL e C#. RRS feed

  • Pergunta

  • Olá pessoal estou fazendo um trabalho de um mercado e não consigo utilizar a crud de pesquisa, sempre que tento volta esse erro:the commandtext property has not been properly initialized

    assim que clico em pesquisar aparecer o erro citado acima, segue abaixo meu código de pesquisar, alterar e excluir. (o cadastrar esta funcionando 100%)

    namespace ControleCaixa
    {
        public partial class consulta : Form
        {
            public consulta()
            {
                InitializeComponent();
            }

            MySqlConnection con = new MySqlConnection("server=localhost;database=mercado2;uid=root;");
            private string strMysql;

            private void btn_pesquisa_Click(object sender, EventArgs e)
            {
                
                MySqlDataAdapter comando = new MySqlDataAdapter(strMysql, con);
                strMysql = "select * from mercado2.produtos where produtoID ='" + txt_pesquisa.Text+"'";
              
                try
                {
                    con.Open();
                    DataSet ds = new DataSet();
                    comando.Fill(ds, "mercado2,produtos");
                    int cont = ds.Tables["mercado2.produtos"].Rows.Count;
                    if (cont == 0)
                    {
                        MessageBox.Show("Produto não Cadastrado!", "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        txt_pesquisa.Clear();
                        txt_pesquisa.Focus();
                    }
                    else if (cont > 0)
                    {
                        byte[] data = new Byte[0];
                        data = (Byte[])(ds.Tables["mercado2.produtos"].Rows[cont - 1]["foto"]);
                        MemoryStream stream = new MemoryStream(data);
                        pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.Image = Image.FromStream(stream);
                        txt_cod.Text = Convert.ToString(ds.Tables["mercado2.produtos"].Rows[cont - 1]["produtoID"]);
                        txt_nome.Text = Convert.ToString(ds.Tables["mercado2.produtos"].Rows[cont - 1]["nome"]);
                        txt_valor.Text = Convert.ToString(ds.Tables["mercado2.produtos"].Rows[cont - 1]["preco"]);
                        txt_qnt.Text = Convert.ToString(ds.Tables["mercado2.produtos"].Rows[cont - 1]["quantidade"]);
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    con.Close();
                }
            }

            private void btn_alterar_Click(object sender, EventArgs e)
            {
                strMysql = "update mercado2.produtos set produtoID=@produtoID, nome=@nome, preco=@preco, quantidade=@quantidade, foto=@foto where idproduto='"+ txt_cod.Text +"'";
                MySqlCommand comando = new MySqlCommand(strMysql, con);

                comando.Parameters.AddWithValue("@produtoID", txt_cod.Text);
                comando.Parameters.AddWithValue("@nome", txt_nome.Text);
                comando.Parameters.Add("@preco", MySqlDbType.Float).Value = txt_valor;
                comando.Parameters.AddWithValue("@quantidade", txt_qnt.Text);
                comando.Parameters.AddWithValue("@foto", converter());

                if (MessageBox.Show("Deseja Realmente Alterar?","Caixa", MessageBoxButtons.YesNo) == DialogResult.Yes);
                {
                    try
                    {
                        con.Open();
                        comando.ExecuteNonQuery();
                        MessageBox.Show("Dados Alterados com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch(Exception ex)
                    {
                        MessageBox.Show(ex.Message,"ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        con.Close();
                    }
                }
            }

            private byte[] converter()
            {
                MemoryStream stream = new MemoryStream();
                byte[] bArray;
                if (pictureBox1.Image == null)
                {
                    stream = null;
                    bArray = new byte[stream.Length];
                }
                else if (pictureBox1.Image != null)
                {
                    pictureBox1.Image.Save(stream, ImageFormat.Png);
                    stream.Seek(0, SeekOrigin.Begin);
                }
                bArray = new byte[stream.Length];
                stream.Read(bArray, 0, Convert.ToInt32(stream.Length));
                return bArray;
            }

            private void btn_excluir_Click(object sender, EventArgs e)
            {
                strMysql = "delete from mercado2.produtos where produtoID='" + txt_cod.Text + "'";
                MySqlCommand comando = new MySqlCommand(strMysql, con);
                
                try
                {
                    con.Open();
                    comando.ExecuteNonQuery();
                    MessageBox.Show("Dados Excluídos com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    con.Close();
                }
                txt_cod.Clear();
                txt_nome.Clear();
                txt_qnt.Clear();
                txt_valor.Clear();
            }

            private void btn_foto_Click(object sender, EventArgs e)
            {
                OpenFileDialog abrir = new OpenFileDialog();
                abrir.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
                abrir.Filter = "Image Files (*.bmp, *.jpg, *.png, *.jpeg)| *.bmp; *.jpg; *.png; *.jpeg";
                abrir.Multiselect = false;

                if (abrir.ShowDialog() == DialogResult.OK)
                {
                    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                    pictureBox1.Image = new Bitmap(abrir.FileName);
                }
            }


    segunda-feira, 16 de abril de 2018 01:43

Respostas

  • Olá.. vc atribuiu strMySql depois de usar. Logo no início do btn_Pesquisa_Click...

    Basta trocar a ordem primeiro atribua seu comando SELECT e depois associe na execução do Command.


    Att, Lucio Rogerio


    Espero ter ajudado, se ajudei, por favor Vote como Útil, e se resolvi seu problema, clique em Marcar como Resposta.

    Segue o código alterado:
    namespace ControleCaixa
    {
        public partial class consulta : Form
        {
            public consulta()
            {
                InitializeComponent();
            }
    
            MySqlConnection con = new MySqlConnection("server=localhost;database=mercado2;uid=root;");
            private string strMysql;
    
            private void btn_pesquisa_Click(object sender, EventArgs e)
            {
                
                strMysql = "select * from mercado2.produtos where produtoID = " + txt_pesquisa.Text;
    
                MySqlDataAdapter comando = new MySqlDataAdapter(strMysql, con);
              
                try
                {
                    con.Open();
                    DataSet ds = new DataSet();
                    comando.Fill(ds, "mercado2,produtos");
                    int cont = ds.Tables["mercado2.produtos"].Rows.Count;
                    if (cont == 0)
                    {
                        MessageBox.Show("Produto não Cadastrado!", "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        txt_pesquisa.Clear();
                        txt_pesquisa.Focus();
                    }
                    else if (cont > 0)
                    {
                        byte[] data = new Byte[0];
                        data = (Byte[])(ds.Tables["mercado2.produtos"].Rows[cont - 1]["foto"]);
                        MemoryStream stream = new MemoryStream(data);
                        pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.Image = Image.FromStream(stream);
                        txt_cod.Text = Convert.ToString(ds.Tables["mercado2.produtos"].Rows[cont - 1]["produtoID"]);
                        txt_nome.Text = Convert.ToString(ds.Tables["mercado2.produtos"].Rows[cont - 1]["nome"]);
                        txt_valor.Text = Convert.ToString(ds.Tables["mercado2.produtos"].Rows[cont - 1]["preco"]);
                        txt_qnt.Text = Convert.ToString(ds.Tables["mercado2.produtos"].Rows[cont - 1]["quantidade"]);
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    con.Close();
                }
            }
    
            private void btn_alterar_Click(object sender, EventArgs e)
            {
                strMysql = "update mercado2.produtos set produtoID=@produtoID, nome=@nome, preco=@preco, quantidade=@quantidade, foto=@foto where idproduto='"+ txt_cod.Text +"'";
                MySqlCommand comando = new MySqlCommand(strMysql, con);
    
                comando.Parameters.AddWithValue("@produtoID", txt_cod.Text);
                comando.Parameters.AddWithValue("@nome", txt_nome.Text);
                comando.Parameters.Add("@preco", MySqlDbType.Float).Value = txt_valor;
                comando.Parameters.AddWithValue("@quantidade", txt_qnt.Text);
                comando.Parameters.AddWithValue("@foto", converter());
    
                if (MessageBox.Show("Deseja Realmente Alterar?","Caixa", MessageBoxButtons.YesNo) == DialogResult.Yes);
                {
                    try
                    {
                        con.Open();
                        comando.ExecuteNonQuery();
                        MessageBox.Show("Dados Alterados com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch(Exception ex)
                    {
                        MessageBox.Show(ex.Message,"ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    finally
                    {
                        con.Close();
                    }
                }
            }
    
            private byte[] converter()
            {
                MemoryStream stream = new MemoryStream();
                byte[] bArray;
                if (pictureBox1.Image == null)
                {
                    stream = null;
                    bArray = new byte[stream.Length];
                }
                else if (pictureBox1.Image != null)
                {
                    pictureBox1.Image.Save(stream, ImageFormat.Png);
                    stream.Seek(0, SeekOrigin.Begin);
                }
                bArray = new byte[stream.Length];
                stream.Read(bArray, 0, Convert.ToInt32(stream.Length));
                return bArray;
            }
    
            private void btn_excluir_Click(object sender, EventArgs e)
            {
                strMysql = "delete from mercado2.produtos where produtoID='" + txt_cod.Text + "'";
                MySqlCommand comando = new MySqlCommand(strMysql, con);
                
                try
                {
                    con.Open();
                    comando.ExecuteNonQuery();
                    MessageBox.Show("Dados Excluídos com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    con.Close();
                }
                txt_cod.Clear();
                txt_nome.Clear();
                txt_qnt.Clear();
                txt_valor.Clear();
            }
    
            private void btn_foto_Click(object sender, EventArgs e)
            {
                OpenFileDialog abrir = new OpenFileDialog();
                abrir.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
                abrir.Filter = "Image Files (*.bmp, *.jpg, *.png, *.jpeg)| *.bmp; *.jpg; *.png; *.jpeg";
                abrir.Multiselect = false;
    
                if (abrir.ShowDialog() == DialogResult.OK)
                {
                    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                    pictureBox1.Image = new Bitmap(abrir.FileName);
                }
            }



    Att, Lucio Rogerio


    Espero ter ajudado, se ajudei, por favor Vote como Útil, e se resolvi seu problema, clique em Marcar como Resposta.

    segunda-feira, 16 de abril de 2018 17:26