none
Botão Update dando erro mysql c# RRS feed

  • Pergunta

  • Boa Noite,

    aqui estou mais uma vez precisando de ajuda, pra variar...hehe

    Estou fazendo um update com monthCalendar e datagridview, porém está dando erro, ele para no meu catch, ja modifiquei o codigo varias vezes, se alguém conseguir me apontar o erro agradeço.

    public Agendamento(string cd ) { InitializeComponent(); conexao = new MySqlConnection("SERVER=localhost;DATABASE=teste;UID=root;PASSWORD=;"); string sql = "Cd_Consulta,Dataa,Horario,cd_paciente,cro,cd_procedimento from consultas Where Cd_Consulta='" + cd + "'"; DataTable dttpa = new DataTable(); try { conexao.Open(); if (conexao.State == ConnectionState.Open) { objAdapter = new MySqlDataAdapter(sql, conexao); objAdapter.Fill(dttpa); textBox3.Text = dttpa.Rows[0]["Cd_Consulta"].ToString();

    monthCalendar1.Text = dttpa.Rows[0]["Dataa"].ToString(); maskedTextBox4.Text = dttpa.Rows[0]["Horario"].ToString(); textBox1.Text = dttpa.Rows[0]["cd_paciente"].ToString();

    //ComboBox estão alimentadas com valor do banco comboBox2.SelectedValue = dttpa.Rows[0]["cro"].ToString(); comboBox3.SelectedValue = dttpa.Rows[0]["cd_procedimento"].ToString(); } else { MessageBox.Show("Falha na abertura da conexão", "Erro"); } } //Da erro aqui catch { MessageBox.Show("Falha na leitura dos dados no banco", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { conexao.Close(); } }


    Botão alterar:

            private void button5_Click(object sender, EventArgs e)
            {
                int indi = dataGridView2.CurrentRow.Index;
                string tempor = dataGridView2[2, indi].Value.ToString();
    
                Agendamento fcc = new Agendamento(tempor);
                fcc.ShowDialog();
            }

    Classe com update:

     class dal_atualizar_consultas
        {
               private MySqlConnection conexao;
    
            public void cadastro(cadas_consulta cadast)
            {
                string caminho = "SERVER=localhost;DATABASE=teste;UID=root;PASSWORD=;";
    
                try
                {
    
                    conexao = new MySqlConnection(caminho);
                    conexao.Open();                                                                                                                                                                                                                                                                                                                                                                                                                //"WHERE Cd_Paciente like'" + cd + "'"
    
                    string inserir = "UPDATE consultas SET Dataa='" + cadast.Dataa + "',Horario='" + cadast.Horario + "', cd_paciente='" + cadast.cd_paciente + "', cro='" + cadast.cro + "', cd_procedimento='" + cadast.cd_procedimento + "' WHERE Cd_Consulta='" + cadast.Codigo + "'";
    
                    MySqlCommand comandos = new MySqlCommand(inserir, conexao);
    
                    comandos.ExecuteNonQuery();
                    MessageBox.Show("Consulta Atualizado com Sucesso!");
                    conexao.Close();
    
                }
    
                catch (Exception ex)
                {
    
                    throw new Exception("Erro de comandos" + ex.Message);
                }
            }
        
        }
    }

    Se alguém puder ajudar, agradeço!





    • Editado Andressa.s quinta-feira, 17 de novembro de 2016 02:12
    quinta-feira, 17 de novembro de 2016 02:07

Respostas

  • Acabei de resolver 

    eu iniciei o índice no botão em 2 , dai mudei pra zero funcinou!

    Ficou assim:

    private void button5_Click(object sender, EventArgs e)
            {
                int indi = dataGridView2.CurrentRow.Index;
                                       //Estava com 2 -Mudei pra zero
                string tempor = dataGridView2[0, indi].Value.ToString();
    
                Agendamento fcc = new Agendamento(tempor);
                fcc.ShowDialog();
            }
    Obrigada a todos!

    sexta-feira, 18 de novembro de 2016 02:26

Todas as Respostas

  • Olá Andressa,

    Para começar, no seu primeiro código, no método Agendamento, a sua string sql está faltando no início da string a palavra SELECT

    Tem que deixar assim e testar:

    string sql = "Select Cd_Consulta,Dataa,Horario,cd_paciente,cro,cd_procedimento from consultas Where Cd_Consulta='" + cd + "'";

    Testa aí e vê se é só isso


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quinta-feira, 17 de novembro de 2016 02:16
  • Hey,

    Boa Noite jovem,

    arrumei o select mais ainda continua dando erro..

    :(

    quinta-feira, 17 de novembro de 2016 02:25
  • Posta a mensagem de erro completa, por gentileza

    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quinta-feira, 17 de novembro de 2016 02:29
  • ola tudo bem?

    voce consegue testar a query no mysql? ela roda certinho direto no banco?

    copia a mensagem que chega de exception pra vc e cola aqui ... 

    quinta-feira, 17 de novembro de 2016 12:03
  • Retire o try Cacth temporariamente. No seu caso ele mais atrapalha do que ajuda, pois ele nao exibe a real mensagem de erro.



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 17 de novembro de 2016 14:57
    Moderador
  • Olá tudo bem?

    Então, como os colegas apontaram, tem que ver o erro completo, especificamente, a inner exception. Provavelmente o erro vem do banco, e se tivesse que apostar diria que pode ser o campo data num formato errado.

    quinta-feira, 17 de novembro de 2016 16:30
  • Boa noite,

    retirei o try e o catch,

    e a mensagem de erro é:

    Não há linha na posição 0.

    sexta-feira, 18 de novembro de 2016 02:06
  • Acabei de resolver 

    eu iniciei o índice no botão em 2 , dai mudei pra zero funcinou!

    Ficou assim:

    private void button5_Click(object sender, EventArgs e)
            {
                int indi = dataGridView2.CurrentRow.Index;
                                       //Estava com 2 -Mudei pra zero
                string tempor = dataGridView2[0, indi].Value.ToString();
    
                Agendamento fcc = new Agendamento(tempor);
                fcc.ShowDialog();
            }
    Obrigada a todos!

    sexta-feira, 18 de novembro de 2016 02:26