public void AlteraAmigo(Amigo altAmigo)
        {
            //Faz a atualização dos dados do amigo no banco de dados
            cmdSQL = "UPDATE Amigos SET Nome = @nome,Telefone = @telefone, Email = @email, Observacao = @observacao,Imagem = @Imagem WHERE Id_Amigo = @id";
            cmd = new SqlCommand(cmdSQL, conexao);
            cmd.Parameters.Add(new SqlParameter("@nome", altAmigo.nome));
            cmd.Parameters.Add(new SqlParameter("@telefone", altAmigo.telefone));
            cmd.Parameters.Add(new SqlParameter("@email", altAmigo.email));
            cmd.Parameters.Add(new SqlParameter("@observacao", altAmigo.observacao));
            cmd.Parameters.Add(new SqlParameter("@id", altAmigo.id));
            cmd.Parameters.Add(new SqlParameter("@Imagem", altAmigo.imagem));

            cmd.ExecuteNonQuery();
        }
        private void bt_Adicionar_Click(object sender, EventArgs e)
        {
            if (tb_Nome.Text == string.Empty)
            {
                lb_InfoUsuario.Visible = true;
                Erro.SetError(lb_InfoUsuario, "O campo nome é obrigatório");
                return;
            }

            Amigo novoAmigo = new Amigo();

            if (salvarImagem)
            {
                pb_Amigo.Image.Save(Application.StartupPath.ToString() + "\\FotosAmigos\\" + tb_Nome.Text + ".png", System.Drawing.Imaging.ImageFormat.Png);
                novoAmigo.imagem = Application.StartupPath.ToString() + "\\FotosAmigos\\" + tb_Nome.Text + ".png";
            }
            else
                novoAmigo.imagem = string.Empty;

            novoAmigo.nome = tb_Nome.Text;
            novoAmigo.telefone = tb_Telefone.Text;
            novoAmigo.email = tb_Email.Text;
            novoAmigo.observacao = rtb_Observacao.Text;

            GerenciadorDeBanco GBD = new GerenciadorDeBanco();

            //verifica se a conecção foi aberta, se sim insere os dados
            if (GBD.AbrirConexao())
            {
                GBD.InserirAmigo(novoAmigo);
                GBD.FecharConexao();

                //Limpa os textBox
                bt_Limpar_Click(sender, e);
                pn_imgDesconecido.Visible = true;
                //Adiciona a nova midia no ListView lvMidias.
                ListViewItem item;

                item = new ListViewItem(novoAmigo.nome);
                lvAmigo.Items.Add(item);
                item.SubItems.Add(novoAmigo.telefone);
                item.SubItems.Add(novoAmigo.email);
                item.SubItems.Add(novoAmigo.observacao);
                System.Media.SystemSounds.Asterisk.Play();

            }
            else
                GBD.MensagemDeErro();
        }
        private void lv_Amigos_DoubleClick(object sender, EventArgs e)
        {
            // Os dados selecionados no ListView são passados para o objeto Amigo.
            Amigo ModificaAmigo = new Amigo();
            foreach (ListViewItem item in lv_Amigos.SelectedItems)
            {
                ModificaAmigo.nome = item.Text;
                ModificaAmigo.telefone = item.SubItems[1].Text;
                ModificaAmigo.email = item.SubItems[2].Text;
                ModificaAmigo.observacao = item.SubItems[3].Text;
            }

            // Chama o método Preecher do Form fm_AlterarAmigo, em seguida abre-o.
            fm_AlterarAmigo AlterarAmigo = new fm_AlterarAmigo();
            AlterarAmigo.Preencher(ModificaAmigo);
            AlterarAmigo.ShowDialog();

            //Caso o amigo for alterado retorna verdadeiro e altera Listview caso não ele é excluido
            if (AlterarAmigo.alterar)
                foreach (ListViewItem item in lv_Amigos.SelectedItems)
                {
                    item.Text = AlterarAmigo.NovoAmigo.nome;
                    item.SubItems[1].Text = AlterarAmigo.NovoAmigo.telefone;
                    item.SubItems[2].Text = AlterarAmigo.NovoAmigo.email;
                    item.SubItems[3].Text = AlterarAmigo.NovoAmigo.observacao;
                }
            else if(AlterarAmigo.excluir)
                foreach (ListViewItem item in lv_Amigos.SelectedItems)
                    item.Remove();
        }
        public void Remover(Amigo removeAmigo)
        {
            // Remove o amigo do banco de dados
            cmdSQL = "DELETE FROM Amigos WHERE Id_Amigo = @Id_Amigo";
            cmd = new SqlCommand(cmdSQL, conexao);
            cmd.Parameters.Add(new SqlParameter("@Id_Amigo", removeAmigo.id));

            cmd.ExecuteNonQuery();
        }
        public int PegarIdentificadorAmigo(Amigo amigo)
        {
            // Localiza o amigo retornando o id para o método que o chamou.
            int id_amigo;

            cmdSQL = "SELECT id_Amigo FROM Amigos WHERE Nome = @Nome AND Email = @Email AND Telefone = @Telefone AND Observacao = @Observacao";

            cmd = new SqlCommand(cmdSQL, conexao);

            cmd.Parameters.Add(new SqlParameter("@Nome", amigo.nome));
            cmd.Parameters.Add(new SqlParameter("@Telefone", amigo.telefone));
            cmd.Parameters.Add(new SqlParameter("@Email", amigo.email));
            cmd.Parameters.Add(new SqlParameter("@Observacao", amigo.observacao));

            return id_amigo = (int)cmd.ExecuteScalar();
        }
        public void InserirAmigo(Amigo novoAmigo)
        {
            // Faz a inserção do dados do novoAmigo para o banco de dados
            string sql = "INSERT INTO Amigos([Nome],[Telefone],[Email],[Observacao],[Imagem]) VALUES(@nome,@telefone,@email,@observacao,@Imagem)";
            cmd = new SqlCommand(sql, conexao);
            cmd.Parameters.Add(new SqlParameter("@nome", novoAmigo.nome));
            cmd.Parameters.Add(new SqlParameter("@telefone", novoAmigo.telefone));
            cmd.Parameters.Add(new SqlParameter("@email", novoAmigo.email));
            cmd.Parameters.Add(new SqlParameter("@observacao", novoAmigo.observacao));
            cmd.Parameters.Add(new SqlParameter("@Imagem", novoAmigo.imagem));

            cmd.ExecuteNonQuery();
        }