private void btnsalvar_Click(object sender, EventArgs e) { btncancelar.Enabled = btnsalvar.Enabled = false; Conexão con = new Conexão(); try { con.conectar(); //atualiza o registro no banco ou faz um novo if ((MessageBox.Show("Você quer salvar como novo registro?\n\nClique em não para atualizar " + "o registro selecionado e em sim para salvar como novo.", "Mensagem ao usuário", MessageBoxButtons.YesNo) == DialogResult.Yes)) { string sql = "SELECT * FROM TB_VOO"; SQLiteDataAdapter dados = new SQLiteDataAdapter(sql, con.conn); DataTable dadosvoos = new DataTable(); dados.Fill(dadosvoos); int d = dadosvoos.Rows.Count + 1; string captura = ""; if (rbcapturasim.Checked == true) { captura = "S"; } else if (rbcapturanao.Checked == true) { captura = "N"; } string sqlinclui = "INSERT INTO TB_VOO (ID_VOO, DATA_VOO, CUSTO, DISTANCIA, CAPTURA, NIVEL_DOR) VALUES ('" + d.ToString() + "',@DATA_VOO,@CUSTO,@DISTANCIA,'" + captura + "',@NIVEL_DOR)"; SQLiteCommand dadosinclui = new SQLiteCommand(sqlinclui, con.conn); try { dadosinclui.Parameters.Add("@DATA_VOO", DbType.DateTime); dadosinclui.Parameters["@DATA_VOO"].Value = Convert.ToDateTime(txtdata.Text); dadosinclui.Parameters.Add("@CUSTO", DbType.Double); dadosinclui.Parameters["@CUSTO"].Value = Convert.ToDouble(txtcusto.Text); dadosinclui.Parameters.Add("@DISTANCIA", DbType.Int32); dadosinclui.Parameters["@DISTANCIA"].Value = Convert.ToInt32(txtdistancia.Text); dadosinclui.Parameters.Add("@NIVEL_DOR", DbType.Int32); dadosinclui.Parameters["@NIVEL_DOR"].Value = Convert.ToInt32(txtniveldor.Text); dadosinclui.ExecuteNonQuery(); PreencheListView(); PreencherTelaDetalhes(); } catch { MessageBox.Show("Os dados preenchidos são inválidos."); LimpaTela(); } } else if (listviewdados.Items.Count != 0) { int a = 0; for (int i = 0; i < listviewdados.Items.Count; i++) { if (listviewdados.Items[i].Selected == true) { a = i + 1; break; } } try { string sqldata = "UPDATE TB_VOO SET DATA_VOO =@DATA_VOO WHERE ID_VOO = " + a.ToString(); SQLiteCommand dadosdata = new SQLiteCommand(sqldata, con.conn); dadosdata.Parameters.Add("@DATA_VOO", DbType.DateTime); dadosdata.Parameters["@DATA_VOO"].Value = Convert.ToDateTime(txtdata.Text); dadosdata.ExecuteNonQuery(); string sqlcusto = "UPDATE TB_VOO SET CUSTO =@CUSTO WHERE ID_VOO = " + a.ToString(); SQLiteCommand dadoscusto = new SQLiteCommand(sqlcusto, con.conn); dadoscusto.Parameters.Add("@CUSTO", DbType.Double); dadoscusto.Parameters["@CUSTO"].Value = Convert.ToDouble(txtcusto.Text); dadoscusto.ExecuteNonQuery(); string sqldistancia = "UPDATE TB_VOO SET DISTANCIA =@DISTANCIA WHERE ID_VOO = " + a.ToString(); SQLiteCommand dadosdistancia = new SQLiteCommand(sqldistancia, con.conn); dadosdistancia.Parameters.Add("@DISTANCIA", DbType.Int32); dadosdistancia.Parameters["@DISTANCIA"].Value = Convert.ToInt32(txtdistancia.Text); dadosdistancia.ExecuteNonQuery(); if (rbcapturasim.Checked == true) { string sqlcapturasim = "UPDATE TB_VOO SET CAPTURA ='S' WHERE ID_VOO = " + a.ToString(); SQLiteCommand dadoscapturasim = new SQLiteCommand(sqlcapturasim, con.conn); dadoscapturasim.ExecuteNonQuery(); } else if (rbcapturanao.Checked == true) { string sqlcapturanao = "UPDATE TB_VOO SET CAPTURA ='N' WHERE ID_VOO = " + a.ToString(); SQLiteCommand dadoscapturanao = new SQLiteCommand(sqlcapturanao, con.conn); dadoscapturanao.ExecuteNonQuery(); } string sqlniveldor = "UPDATE TB_VOO SET NIVEL_DOR =@NIVEL_DOR WHERE ID_VOO = " + a.ToString(); SQLiteCommand dadosniveldor = new SQLiteCommand(sqlniveldor, con.conn); dadosniveldor.Parameters.Add("@NIVEL_DOR", DbType.Int32); dadosniveldor.Parameters["@NIVEL_DOR"].Value = Convert.ToInt32(txtniveldor.Text); dadosniveldor.ExecuteNonQuery(); PreencherTelaDetalhes(); PreencheListView(); } catch { MessageBox.Show("Os dados preenchidos são inválidos."); LimpaTela(); } } else { MessageBox.Show("Não há registro para atualizar.\nVocê pode inserir um novo.", "Atenção"); HabilitaSalvarCancelar(); } con.desconectar(); } catch (Exception E) { MessageBox.Show(E.Message.ToString()); LimpaTela(); } }