Exemplo n.º 1
0
        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();
            }
        }