Usuário com melhor resposta
Pegar dados de uma linha do datagridview e inserir em outra tabela c#

Pergunta
-
Boa Noite,
Fecharam meu topico anterior, pq precisei viajar, enfim to reabrindo outro.
Necessito selecionar a linha do datagridview1 que está linkada a uma tabela consultas e ao apertar o botão os dados são inseridos na tabela consultas_canceladas que possue os mesmos campos da tabela consulta.
Criei uma classe para inserir mas ainda não conseguir....Meu codigo está assim:
//Classe de inserir public void cadastro(cadas_consultas_canceladas cadas) { string caminho = "SERVER=localhost;DATABASE=teste;UID=root;PASSWORD=;"; try { conexao = new MySqlConnection(caminho); conexao.Open(); //yyyy-MM-dd string inserir = "INSERT INTO consultas_canceladas (Cd_consulta_cancelada,Dataa,cd_paciente,cro,cd_procedimento,cd_hr,cd_pagamento,hr_dt_inserido)VALUES('" + cadas.Codigo_cance + "','" + cadas.Dataa_cance + "','" + cadas.cd_paciente_cance + "','" + cadas.cro_cance + "' ,'" + cadas.cd_procedimento_cance + "','" + cadas.cd_hr_cance + "','" + cadas.cd_pgto_cance + "','" + cadas.hr_dt_inserido_cance + "')"; MySqlCommand comandos = new MySqlCommand(inserir, conexao); comandos.ExecuteNonQuery(); MessageBox.Show("Consulta Cadastrada com Sucesso!"); conexao.Close(); } catch (Exception ex) { throw new Exception("Erro de comandos" + ex.Message); } } //codigo do botão //Botão de cancelar consultas private void button1_Click(object sender, EventArgs e) { cadas_consultas_canceladas ccn = new cadas_consultas_canceladas(); dal_consultas_canceladas dcn = new dal_consultas_canceladas(); ccn.Codigo_cance=dataGridView1.Columns[0].ToString(); ccn.Dataa_cance = dataGridView1.Columns[1].ToString(); ccn.cd_paciente_cance = dataGridView1.Columns[2].ToString(); ccn.cro_cance = dataGridView1.Columns[3].ToString(); ccn.cd_procedimento_cance = dataGridView1.Columns[4].ToString(); ccn.cd_hr_cance = dataGridView1.Columns[5].ToString(); ccn.cd_pgto_cance = dataGridView1.Columns[6].ToString(); ccn.hr_dt_inserido_cance = dataGridView1.Columns[7].ToString(); dcn.cadastro(ccn); }
Alguém pode me ajudar?
- Editado Andressa.s sábado, 18 de março de 2017 04:52
Respostas
-
Bom dia Andressa como vai ?
Olhando so falta ler a linha do datagrid que esta selecionada seria assim:
//verifica existe linha selcionada if(datagridview.SelectedRows.Count > 0) { //insere na tabela ccn.Codigo_cance = datagridView1.SelectedRows[0].Cells[0].Value.ToString(); //... }
Outra coisa poderia utilizar parametros para passar os dados no seu insert :
- Sugerido como Resposta Mr. GMSOFT terça-feira, 14 de março de 2017 11:40
- Marcado como Resposta Robson William SilvaModerator sexta-feira, 17 de março de 2017 12:16
-
Boa Noite,
Testei e parece que irá funcionar , mas o único problema está no insert agora, por causa da data, tentei arrumar utilizando STR_TO_DATE mas não funcionou.
//modifiquei no formato da data string inserir = "INSERT INTO consultas_canceladas (Cd_consulta_cancelada,STR_TO_DATE(Dataa, ‘%Y-%m-%d’),cd_paciente,cro,cd_procedimento,cd_hr,cd_pagamento,hr_dt_inserido)VALUES('" + cadas.Codigo_cance + "','" + cadas.Dataa_cance + "','" + cadas.cd_paciente_cance + "','" + cadas.cro_cance + "' ,'" + cadas.cd_procedimento_cance + "','" + cadas.cd_hr_cance + "','" + cadas.cd_pgto_cance + "','" + cadas.hr_dt_inserido_cance + "')";
Ele apresenta o seguinte erro:
Erro de comandosYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(Dataa, ‘%Y-%m-%d’
Como resolvo, pode me ajudar?
Boa tarde Andressa,
Remova o str_to_date e passe o valor de sua string assim :
string dataInsert = Convert.ToDateTime(suadata).ToString("yyyy-MM-dd");
Caso não funcione utilize parametro conforme o link que mencionei na resposta anterior.
- Marcado como Resposta Andressa.s sábado, 18 de março de 2017 04:50
Todas as Respostas
-
Bom dia Andressa como vai ?
Olhando so falta ler a linha do datagrid que esta selecionada seria assim:
//verifica existe linha selcionada if(datagridview.SelectedRows.Count > 0) { //insere na tabela ccn.Codigo_cance = datagridView1.SelectedRows[0].Cells[0].Value.ToString(); //... }
Outra coisa poderia utilizar parametros para passar os dados no seu insert :
- Sugerido como Resposta Mr. GMSOFT terça-feira, 14 de março de 2017 11:40
- Marcado como Resposta Robson William SilvaModerator sexta-feira, 17 de março de 2017 12:16
-
Boa Noite,
Testei e parece que irá funcionar , mas o único problema está no insert agora, por causa da data, tentei arrumar utilizando STR_TO_DATE mas não funcionou.
//modifiquei no formato da data string inserir = "INSERT INTO consultas_canceladas (Cd_consulta_cancelada,STR_TO_DATE(Dataa, ‘%Y-%m-%d’),cd_paciente,cro,cd_procedimento,cd_hr,cd_pagamento,hr_dt_inserido)VALUES('" + cadas.Codigo_cance + "','" + cadas.Dataa_cance + "','" + cadas.cd_paciente_cance + "','" + cadas.cro_cance + "' ,'" + cadas.cd_procedimento_cance + "','" + cadas.cd_hr_cance + "','" + cadas.cd_pgto_cance + "','" + cadas.hr_dt_inserido_cance + "')";
Ele apresenta o seguinte erro:
Erro de comandosYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(Dataa, ‘%Y-%m-%d’
Como resolvo, pode me ajudar?
- Editado Andressa.s terça-feira, 14 de março de 2017 23:47
-
Boa Noite,
Testei e parece que irá funcionar , mas o único problema está no insert agora, por causa da data, tentei arrumar utilizando STR_TO_DATE mas não funcionou.
//modifiquei no formato da data string inserir = "INSERT INTO consultas_canceladas (Cd_consulta_cancelada,STR_TO_DATE(Dataa, ‘%Y-%m-%d’),cd_paciente,cro,cd_procedimento,cd_hr,cd_pagamento,hr_dt_inserido)VALUES('" + cadas.Codigo_cance + "','" + cadas.Dataa_cance + "','" + cadas.cd_paciente_cance + "','" + cadas.cro_cance + "' ,'" + cadas.cd_procedimento_cance + "','" + cadas.cd_hr_cance + "','" + cadas.cd_pgto_cance + "','" + cadas.hr_dt_inserido_cance + "')";
Ele apresenta o seguinte erro:
Erro de comandosYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(Dataa, ‘%Y-%m-%d’
Como resolvo, pode me ajudar?
Boa tarde Andressa,
Remova o str_to_date e passe o valor de sua string assim :
string dataInsert = Convert.ToDateTime(suadata).ToString("yyyy-MM-dd");
Caso não funcione utilize parametro conforme o link que mencionei na resposta anterior.
- Marcado como Resposta Andressa.s sábado, 18 de março de 2017 04:50
-