Buscar

PIM VIII - Análise e Desenvolvimento de Sistemas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

UNIVERSIDADE PAULISTA – UNIP EaD 
Projeto Integrado Multidisciplinar 
Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas 
 
 
DANIEL CREVELANTI DE MELO – 0567007 
FERNANDO FÁBIO FERREIRA DO NASCIMENTO – 2015049 
 
 
 
 
 
CRUD C# ASP.NET E ANDROID 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SÃO PAULO 
2021 
 
DANIEL CREVELANTI DE MELO – 0567007 
FERNANDO FÁBIO FERREIRA DO NASCIMENTO – 2015049 
 
 
 
 
 
 
 
CRUD C# ASP.NET E ANDROID 
 
 
 
Projeto Integrado Multidisciplinar para 
obtenção do título de tecnólogo em 
Análise e Desenvolvimento de 
Sistemas, apresentado à Universidade 
Paulista – UNIP EaD. 
Orientador (a): Prof. Me. Cassiano Gunji 
 
 
 
 
 
 
 
SÃO PAULO 
2021 
RESUMO 
 Com o auxílio das disciplinas: Programação Orientada a Objetos II, 
Desenvolvimento de Software para a Internet e Tópicos Especiais de 
Programação Orientada a Objetos, desenvolvemos um sistema com 
codificação em C# de modo a se ter acesso a um banco de dados com 
prototipação junto com o usuário através de interface gráfica Android e 
ASP.Net, de modo que esse sistema suporte toda a exigência do 
Product Owner. 
Palavras-chave: Bando de Dados, C#, Desenvolvimento de 
Sistemas, Android e ASP.Net. 
ABSTRACT 
 With the help of the disciplines: Object-Oriented Programming II, 
Software Development for the Internet and Special Topics in Object-
Oriented Programming, we developed a system with coding in C# in order 
to have access to a database with prototyping together with the user 
through Android and ASP.Net graphical interface, so that this system 
supports all Product Owner requirements. 
Keywords: Database, C#, Systems Development, Android and ASP.Net. 
 
LISTA DE FIGURAS 
Figura 1 - Diagrama Do Banco de Dados, criação própria, 2021. ................ 9 
Figura 2 - Tela de Desenvolvimento do Microsoft Visual Studio 2015, 
criação própria, 2021. ................................................................................. 13 
Figura 3 - Telas Inclusão e Consulta de Endereços, criação própria, 2021.
.................................................................................................................... 14 
Figura 4 - Telas Alteração e Exclusão de Endereços, criação própria, 2021.
.................................................................................................................... 15 
Figura 5 - Tela de Desenvolvimento do Android Studio, criação própria, 
2021. ........................................................................................................... 21 
Figura 6 - Telas Inclusão e Consulta de Endereços, criação própria, 2021.
.................................................................................................................... 22 
 
 
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121934
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121935
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121935
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121936
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121936
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121937
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121937
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121938
file:///C:/Users/paole/Desktop/PIM%208.doc%23_Toc89121938
 
SUMÁRIO 
1. INTRODUÇÃO ............................................................................. 7 
2. BANCO DE DADOS ..................................................................... 8 
2.1. Modelo .................................................................................................. 8 
3. Linguagens de Programação ................................................... 10 
3.1. C# - Mecanismo de Acesso ao Banco de Dados .................................... 10 
3.2. ASP.Net – Interface Gráfica com o Usuário ........................................... 13 
3.2.1. Código Fonte ....................................................................................... 16 
3.3. Android – Interface Gráfica com o Usuário ......................................... 21 
3.3.1. Código Fonte ....................................................................................... 23 
4. CONCLUSÃO ............................................................................. 26 
5. REFERÊNCIAS .......................................................................... 27 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
 
1. INTRODUÇÃO 
 Os códigos criados têm suas características precisando 
cuidadosamente ser gerenciados. Exigem planejamento e organização, 
para assim estar oferecendo um produto com a qualidade exigida, de modo 
a não ter gastos abusivos, desenvolvendo estratégias para a otimização de 
seus processos em seus inícios até fins. 
 É de suma importância a compreensão do entendimento com 
clareza dos processos como um conjunto de atividades que são 
organizados objetivando assim o desenvolvimento, os testes e a 
manutenção do software. 
Há formas de padronização para que se combata ao máximo os 
imprevistos que retardem a qualidade do produto e o estabelecimento da 
linha do software, de modo a otimizar o tempo e os custos já que os 
desenvolvedores poderão ter uma referência para assim auxiliá-los. 
 Para o desenvolvimento de um software tem que haver a concepção 
que todos os objetivos devem ser claros e ricos em detalhamento. 
 Sendo assim, embasado no aprendizado adquirido, apresentaremos 
procedimentos e técnicas com o auxílio de ferramentas de programação 
para a elaboração e produção de um sistema. 
 
 
 
 
 
 
 
 
 
 
 
 
 
8 
 
2. BANCO DE DADOS 
2.1. Modelo 
Script SQL – Criação Banco 
-- MySQL Workbench Synchronization -- Generated: 2020-10-13 18:02 
-- Version: 1.0 -- Author: Silvio Agnoleto 
 
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, 
UNIQUE_CHECKS=0; SET 
@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, 
FOREIGN_KEY_CHECKS=0; 
SET @OLD_SQL_MODE=@@SQL_MODE, 
SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DAT
E,NO 
_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; 
 
CREATE SCHEMA IF NOT EXISTS `contatos` DEFAULT CHARACTER SET utf8 ; 
 
CREATE TABLE IF NOT EXISTS `contatos`.`Endereco` ( 
`id` INT(11) NOT NULL AUTO_INCREMENT, 
`logradouro` VARCHAR(256) NOT NULL, 
`numero` INT(11) NOT NULL, 
`cep` INT(11) NOT NULL, 
`bairro` VARCHAR(50) NOT NULL, 
`cidade` VARCHAR(30) NOT NULL, 
`estado` VARCHAR(20) NOT 
NULL, PRIMARY KEY (`id`)) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8; 
 
CREATE TABLE IF NOT EXISTS `contatos`.`Pessoa` ( 
`id` INT(11) NOT NULL AUTO_INCREMENT, 
`nome` VARCHAR(256) NOT NULL, 
`cpf` BIGINT(11) NOT NULL, 
`endereco` INT(11) NOT 
NULL, PRIMARY KEY 
(`id`), 
INDEX ̀ endereco_idx` (`endereco` 
ASC) , CONSTRAINT `endereco` 
FOREIGN KEY (`endereco`) 
REFERENCES ̀ contatos`.`Endereco` 
(`id`) ON DELETE NO ACTION 
ON UPDATE NO 
ACTION) ENGINE = 
InnoDB 
DEFAULT CHARACTER SET = utf8; 
 
CREATE TABLE IF NOT EXISTS `contatos`.`Telefone_Tipo` ( 
`id` INT(11) NOT NULL AUTO_INCREMENT, 
`tipo` VARCHAR(10) NOT 
NULL, PRIMARY KEY 
(`id`)) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8; 
 
CREATE TABLE IF NOT EXISTS `contatos`.`Telefone` ( 
`id` INT(11) NOT NULL AUTO_INCREMENT, 
`numero` INT(11) NOT NULL, 
`ddd` INT(11) NOT NULL, 
`tipo` INT(11) NOT NULL,
9 
 
 
PRIMARY KEY (`id`), 
INDEX ̀ tipo_idx` (`tipo` ASC) , 
CONSTRAINT `tipo` 
FOREIGN KEY (`tipo`) 
REFERENCES `contatos`.`Telefone_Tipo` (`id`) 
ON DELETE NO ACTION 
ON UPDATE NO ACTION) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8; 
 
CREATE TABLE IF NOT EXISTS `contatos`.`Pessoa_Telefone` ( 
`id_pessoa` INT(11) NOT NULL, 
`id_telefone` INT(11) NOT NULL, 
INDEX `id_pessoa_idx` (`id_pessoa` ASC) , 
INDEX ̀ id_telefone_idx` (`id_telefone` ASC) , 
CONSTRAINT `id_pessoa` 
FOREIGN KEY (`id_pessoa`) 
REFERENCES ̀ contatos`.`Pessoa` (`id`)ON DELETE NO ACTION 
ON UPDATE NO ACTION, 
CONSTRAINT `id_telefone` 
FOREIGN KEY (`id_telefone`) 
REFERENCES `contatos`.`Telefone` (`id`) 
ON DELETE NO ACTION 
ON UPDATE NO ACTION) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8; 
 
SET SQL_MODE=@OLD_SQL_MODE; 
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; 
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; 
 
Figura 1 - Diagrama Do Banco de Dados, criação própria, 2021. 
10 
 
3. Linguagens de Programação 
3.1. C# - Mecanismo de Acesso ao Banco de Dados 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using MySql.Data.MySqlClient; 
 
 
namespace MySqlCRUD 
{ 
public partial class Form1 : Form 
{ 
string connectionString = 
@"Server=localhost;Database=contatos;Uid=root;Pwd=@Mudar123;"; 
int id = 0; 
public Form1() 
{ 
InitializeComponent(); 
} 
 
private void btnSave_Click(object sender, EventArgs e) 
{ 
using (MySqlConnection mysqlCon = new MySqlConnection(connectionString)) 
{ 
mysqlCon.Open(); 
MySqlCommand mySqlCmd = new 
MySqlCommand("pessoaAddOrEdit",mysqlCon); 
mySqlCmd.CommandType = CommandType.StoredProcedure; 
mySqlCmd.Parameters.AddWithValue("_id", id); 
mySqlCmd.Parameters.AddWithValue("_nome", txtNome.Text.Trim()); 
mySqlCmd.Parameters.AddWithValue("_cpf", txtCPF.Text.Trim()); 
mySqlCmd.Parameters.AddWithValue("_endereco", txtEndereco.Text.Trim()); 
mySqlCmd.ExecuteNonQuery(); 
MessageBox.Show("Gravado com Sucesso"); 
Clear(); 
GridFill(); 
} 
} 
 
void GridFill() 
{ 
using (MySqlConnection mysqlCon = new MySqlConnection(connectionString)) 
{ 
mysqlCon.Open(); 
MySqlDataAdapter sqlDa = new 
MySqlDataAdapter("pessoaViewAll",mysqlCon); 
sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure; 
DataTable dtblPessoa = new DataTable(); 
sqlDa.Fill(dtblPessoa); 
dgvPessoa.DataSource = dtblPessoa; 
dgvPessoa.Columns[0].Visible = false; 
}
11 
 
 
 
} 
 
 
 
private void Form1_Load(object sender, EventArgs e) 
{ 
Clear(); 
GridFill(); 
} 
 
void Clear() 
{ 
txtNome.Text = txtCPF.Text = txtEndereco.Text = txtSearch.Text = ""; 
id = 0; 
btnSave.Text = "Save"; 
btnDelete.Enabled = false; 
} 
 
private void dgvPessoa_DoubleClick(object sender, EventArgs e) 
{ 
if (dgvPessoa.CurrentRow.Index != -1) 
{ 
txtNome.Text = dgvPessoa.CurrentRow.Cells[1].Value.ToString(); 
txtCPF.Text = dgvPessoa.CurrentRow.Cells[2].Value.ToString(); 
txtEndereco.Text = dgvPessoa.CurrentRow.Cells[3].Value.ToString(); 
id = Convert.ToInt32(dgvPessoa.CurrentRow.Cells[0].Value.ToString()); 
btnSave.Text = "Update"; 
btnDelete.Enabled = Enabled; 
} 
} 
 
private void btnSearch_Click(object sender, EventArgs e) 
{ 
using (MySqlConnection mysqlCon = new MySqlConnection(connectionString)) 
{ 
 
 
mysqlCon); 
mysqlCon.Open(); 
MySqlDataAdapter sqlDa = new MySqlDataAdapter("pessoaSearchByValue", 
sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure; 
sqlDa.SelectCommand.Parameters.AddWithValue("_SearchValue",txtSearch.Text); 
DataTable dtblPessoa = new DataTable(); 
sqlDa.Fill(dtblPessoa); 
dgvPessoa.DataSource = dtblPessoa; 
dgvPessoa.Columns[0].Visible = false; 
} 
} 
 
private void btnCancel_Click(object sender, EventArgs e) 
{ 
Clear(); 
} 
 
private void btnDelete_Click(object sender, EventArgs e) 
{ 
using (MySqlConnection mysqlCon = new MySqlConnection(connectionString)) 
{ 
 
 
mysqlCon); 
mysqlCon.Open(); 
MySqlCommand mySqlCmd = new MySqlCommand("pessoaDeleteByID", 
 
mySqlCmd.CommandType = CommandType.StoredProcedure; 
mySqlCmd.Parameters.AddWithValue("_id", id);
12 
 
 
mySqlCmd.ExecuteNonQuery(); 
MessageBox.Show("Deletado com Sucesso"); 
Clear(); 
GridFill(); 
} 
} 
} 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13 
 
3.2. ASP.Net – Interface Gráfica com o Usuário 
 
Características referenciadas através da disciplina Desenvolvimento de 
Software para Internet, desenvovido em ASP.Net: 
 capturas de tela das interfaces gráficas; 
 código aspx do layout dos formulários criados; 
 Usando o Visual Estudio Protótipo de interface gráfica em ASP 
.Net oferecendo as funcionalidades CRUD ao usuario. 
 
 
 
 
 
 
 
 
 
 
Figura 2 - Tela de Desenvolvimento do Microsoft Visual Studio 2015, criação própria, 2021. 
14 
 
 
O sistema nos mostra : 
 Que digitando e clicando no botão salvar atualiza-se 
automaticamente, caso estejam nas normas de formatação 
validadas. 
Figura 3 - Telas Inclusão e Consulta de Endereços, criação própria, 2021. 
15 
 
Em uma uma outra imagem é possível observar, as opções de 
atualização e deletação. 
 
Figura 4 - Telas Alteração e Exclusão de Endereços, criação própria, 2021. 
16 
 
3.2.1. Código Fonte 
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" 
Inherits="ASPCRUD.Index" %> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:HiddenField ID="hfid" runat="server" /> 
<table> 
<tr> 
<td> 
<asp:Label Text="Logradouro" runat="server" /> 
</td> 
<td colspan="2"> 
<asp:TextBox ID="txtLogradouro" runat="server" /> 
</td> 
</tr> 
<tr> 
<td> 
<asp:Label Text="Numero" runat="server" /> 
</td> 
<td colspan="2"> 
<asp:TextBox ID="txtNumero" runat="server" /> 
</td> 
</tr> 
<tr> 
<td> 
<asp:Label Text="CEP" runat="server" /> 
</td> 
<td colspan="2"> 
<asp:TextBox ID="txtCEP" runat="server" /> 
</td> 
</tr> 
<tr> 
<td> 
<asp:Label Text="Bairro" runat="server" /> 
</td> 
<td colspan="2"> 
<asp:TextBox ID="txtBairro" runat="server" /> 
</td> 
</tr> 
<tr> 
<td> 
<asp:Label Text="Cidade" runat="server" /> 
</td> 
<td colspan="2"> 
<asp:TextBox ID="txtCidade" runat="server" /> 
</td> 
</tr> 
 
 
 
<tr> 
<td> 
<asp:Label Text="Estado" runat="server" /> 
</td> 
http://www.w3.org/1999/xhtml
http://www.w3.org/1999/xhtml
17 
 
<td colspan="2"> 
<asp:TextBox ID="txtEstado" runat="server" /> 
</td> 
</tr> 
<tr> 
<td></td> 
<td colspan="2"> 
<asp:Button Text="Salvar" ID="btnSalvar" runat="server" OnClick="btnSalvar_Click" 
/> 
<asp:Button Text="Deletar" ID="btnDeletar" runat="server" 
OnClick="btnDeletar_Click" /> 
<asp:Button Text="Limpar" ID="btnLimpar" runat="server" 
OnClick="btnLimpar_Click" /> 
</td> 
</tr> 
<tr> 
<td></td> 
<td colspan="2"> 
<asp:Label Text="" ID="lblSucessMessage" runat="server" ForeColor="Green" /> 
</td> 
</tr> 
<tr> 
<td></td> 
<td colspan="2"> 
<asp:Label Text="" ID="lblErrorMessage" runat="server" ForeColor="Red" /> 
</td> 
</tr> 
</table> 
<br/. /> 
<asp:GridView ID="gvEndereco" runat="server" AutoGenerateColumns="false"> 
<Columns> 
<asp:BoundField DataField="logradouro" HeaderText="Logradouro" /> 
<asp:BoundField DataField="numero" HeaderText="Numero" /> 
<asp:BoundField DataField="cep" HeaderText="CEP" /> 
<asp:BoundField DataField="bairro" HeaderText="Bairro" /> 
<asp:BoundField DataField="cidade" HeaderText="Cidade" /> 
<asp:BoundField DataField="estado" HeaderText="Estado" /> 
<asp:TemplateField> 
<ItemTemplate> 
<asp:LinkButton Text="Selecionar" ID="lnkSelect" CommandArgument='<%# 
Eval("id") %>' runat="server" OnClick="lnkSelect_OnClick"/> 
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 
</div> 
</form> 
</body> 
</html> 
 
 
 
 
 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using MySql.Data.MySqlClient; 
using System.Data; 
 
18 
 
namespace ASPCRUD 
{ 
public partial class Index : System.Web.UI.Page 
{ 
string connectionString = 
@"Server=localhost;Database=contatos;Uid=root;Pwd='@Mudar123';"; 
 
protected void Page_Load(object sender, EventArgs e) 
{ 
if(!IsPostBack) 
{ 
Clear(); 
GridFill(); 
} 
} 
 
protected void btnSalvar_Click(object sender, EventArgs e) 
{ 
try 
{ 
 
 
using (MySqlConnection sqlCon = new MySqlConnection(connectionString)) 
{ 
 
 
 
 
hfid.Value)); 
sqlCon.Open(); 
MySqlCommand sqlCmd = new MySqlCommand("enderecoAddOrEdit", sqlCon); 
sqlCmd.CommandType = System.Data.CommandType.StoredProcedure; 
sqlCmd.Parameters.AddWithValue("_id", Convert.ToInt32(hfid.Value == "" ? "0" : 
 
sqlCmd.Parameters.AddWithValue("_logradouro", txtLogradouro.Text.Trim()); 
sqlCmd.Parameters.AddWithValue("_numero", 
19 
 
Convert.ToInt32(txtNumero.Text.Trim())); 
sqlCmd.Parameters.AddWithValue("_cep", 
Convert.ToInt32(txtCEP.Text.Trim())); 
sqlCmd.Parameters.AddWithValue("_bairro", txtBairro.Text.Trim()); 
sqlCmd.Parameters.AddWithValue("_cidade", txtCidade.Text.Trim()); 
sqlCmd.Parameters.AddWithValue("_estado", 
txtEstado.Text.Trim()); sqlCmd.ExecuteNonQuery(); 
GridFill()
; Clear(); 
lblSucessMessage.Text = "Gravado com Sucesso"; 
} 
} 
catch (Exception ex) 
{ 
lblErrorMessage.Text = ex.Message; 
 
} 
} 
 
 
void Clear() 
{ 
hfid.Value = ""; 
txtLogradouro.Text = txtNumero.Text = txtCEP.Text = txtBairro.Text = txtCidade.Text 
= txtEstado.Text = ""; 
btnSalvar.Text = "Salvar"; 
btnDeletar.Enabled = 
false; 
lblErrorMessage.Text = lblSucessMessage.Text = ""; 
} 
 
protected void btnLimpar_Click(object sender, EventArgs e) 
{ 
Clear(); 
} 
 
void GridFill() 
{ 
using (MySqlConnection sqlCon = new MySqlConnection(connectionString)) 
{ 
sqlCon.Open(); 
MySqlDataAdapter sqlDa = new 
MySqlDataAdapter("enderecoViewAll",sqlCon); 
sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure; 
DataTable dtbl = new DataTable(); 
sqlDa.Fill(dtbl); 
gvEndereco.DataSource = 
dtbl; gvEndereco.DataBind(); 
} 
} 
 
protected void lnkSelect_OnClick(object sender, EventArgs e) 
{ 
int id = Convert.ToInt32((sender as LinkButton).CommandArgument); 
using (MySqlConnection sqlCon = new MySqlConnection(connectionString)) 
{ 
sqlCon.Open(); 
MySqlDataAdapter sqlDa = new MySqlDataAdapter("enderecoViewByID", 
20 
 
sqlCon); sqlDa.SelectCommand.Parameters.AddWithValue("_id", id); 
sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure; 
DataTable dtbl = new DataTable(); 
sqlDa.Fill(dtbl); 
 
hfid.Value = dtbl.Rows[0][0].ToString(); 
 
txtLogradouro.Text = 
dtbl.Rows[0][1].ToString(); txtNumero.Text = 
dtbl.Rows[0][2].ToString(); txtCEP.Text = 
dtbl.Rows[0][3].ToString(); txtBairro.Text = 
dtbl.Rows[0][4].ToString(); txtCidade.Text = 
dtbl.Rows[0][5].ToString(); txtEstado.Text = 
dtbl.Rows[0][6].ToString(); 
 
btnSalvar.Text = 
"Atualizar"; 
btnDeletar.Enabled = true; 
} 
} 
 
 
 
protected void btnDeletar_Click(object sender, EventArgs e) 
{ 
using (MySqlConnection sqlCon = new MySqlConnection(connectionString)) 
{ 
sqlCon.Open(); 
MySqlCommand sqlCmd = new MySqlCommand("enderecoDeleteByID", sqlCon); 
sqlCmd.CommandType = System.Data.CommandType.StoredProcedure; 
sqlCmd.Parameters.AddWithValue("_id", Convert.ToInt32(hfid.Value == "" ? "0" : 
hfid.Value)); 
sqlCmd.ExecuteNonQuery(); 
GridFill(); 
Clear(); 
lblSucessMessage.Text = "Deletado com Sucesso"; 
} 
} 
} 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21 
 
 
3.3. Android – Interface Gráfica com o Usuário 
 
 Relacionado com a disciplina de Tópicos Especiais de Programação 
Orientada a Objetos e também com o auxilio da ferramenta Android Studio 
foram desenvolvidas as sequintes caracteristicas : 
 código XML do layout das Activities criadas; 
 Capturas de tela das interfaces gráfica; 
 Funcionalidades CRUD em interfaces graficas junto ao usuário. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 5 - Tela de Desenvolvimento do Android Studio, criação própria, 2021. 
22 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fonte: Própria, 2020. 
Imagem 06 - Telas Alteração e Exclusão 
 A imagem a seguir nos mostra a captura de tela de consulta dos 
endereços cadastrados seguido das alteraçoes e exclusões desses cadastros 
de endereços : 
 
 
Figura 6 - Telas Inclusão e Consulta de Endereços, criação própria, 2021. 
 
 
 
 
23 
 
3.3.1. Código Fonte 
package br.unipinterativa.sqlitecrud; 
 
import androidx.appcompat.app.AlertDialog; 
import androidx.appcompat.app.AppCompatActivity; 
 
import 
android.database.Cursor; import 
android.os.Bundle; import 
android.view.Menu; import 
android.view.MenuItem; import 
android.view.View; import 
android.widget.Button; import 
android.widget.EditText; import 
android.widget.Toast; 
 
public class MainActivity extends AppCompatActivity 
{ DatabaseHelper myDb; 
EditText editlogradouro, editnumero,editcep,editbairro,editcidade,editestado,editid; 
Button btnsalvar; 
Button 
btnviewall; Button 
btnupdate; Button 
btndelete; 
 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ super.onCreate (savedInstanceState); 
setContentView (R.layout.activity_main); 
myDb = new DatabaseHelper (this); 
 
editlogradouro = (EditText) findViewById 
(R.id.editText_logradouro); editnumero = (EditText) findViewById 
(R.id.editText_numero); editcep = (EditText) findViewById 
(R.id.editText_cep); 
editbairro = (EditText) findViewById (R.id.editText_bairro); 
editcidade = (EditText) findViewById 
(R.id.editText_cidade); editestado = (EditText) findViewById 
(R.id.editText_estado); editid = (EditText) findViewById 
(R.id.editText_id); 
btnsalvar = (Button) findViewById (R.id.button_salvar); 
btnviewall = (Button) findViewById (R.id.button_view); 
btnupdate = (Button) findViewById 
(R.id.button_update); btndelete = (Button) findViewById 
(R.id.button_del); Salvar (); 
Viewall(); 
UpdateData(); 
DeleteData 
(); 
 
} 
 
public void DeleteData() { 
btndelete.setOnClickListener ( 
new View.OnClickListener () { 
@Override 
public void onClick(View view) { 
24 
 
Integer deleteRows = myDb.deleteData (editid.getText ().toString 
()); if(deleteRows > 0) 
Toast.makeText (MainActivity.this,"Deletado com Sucesso",Toast.LENGTH_SHORT).show (); 
else 
Toast.makeText (MainActivity.this,"Erro 
na Deleção",Toast.LENGTH_SHORT).show (); 
} 
} 
); 
} 
 
 
 
public void UpdateData() { 
btnupdate.setOnClickListener ( 
new View.OnClickListener () { 
@Override 
public void onClick(View view) { 
boolean isUpdate = myDb.updateData (editid.getText 
().toString (),editlogradouro.getText ().toString (),editnumero.getText ().toString 
(), 
editcep.getText ().toString (),editbairro.getText ().toString 
(),editcidade.getText ().toString (),editestado.getText ().toString 
()); if(isUpdate == true) 
Toast.makeText (MainActivity.this,"Alterado com 
Sucesso",Toast.LENGTH_SHORT).show (); 
else 
Toast.makeText (MainActivity.this,"Erro 
na Gravação",Toast.LENGTH_SHORT).show (); 
} 
} 
); 
} 
 
public void Salvar() { 
btnsalvar.setOnClickListener ( 
new View.OnClickListener () { 
@Override 
public void onClick(View view) { 
boolean isInserted = myDb.insertData (editlogradouro.getText ().toString 
(), editnumero.getText ().toString (), 
editcep.getText ().toString (), 
editbairro.getText ().toString (), 
editcidade.getText ().toString (), 
editestado.getText ().toString 
()); 
if(isInserted == true) 
Toast.makeText (MainActivity.this,"Gravado 
com Sucesso",Toast.LENGTH_SHORT).show (); 
else 
Toast.makeText (MainActivity.this,"Erro 
na Gravação",Toast.LENGTH_SHORT).show (); 
} 
} 
); 
 
} 
25 
 
 
public void Viewall() { 
btnviewall.setOnClickListener ( 
new View.OnClickListener () 
{ @Override 
 
public void onClick(View view) { 
Cursor res = myDb.getAllData 
(); if(res.getCount () == 0) { 
//show message 
showMessage ("Erro","Não 
Encontrado"); return; 
} 
StringBuffer buffer = new StringBuffer 
(); while (res.moveToNext ()) { 
buffer.append ("Id :"+res.getString (0)+"\n"); 
buffer.append ("Logradouro :"+res.getString 
(1)+"\n"); buffer.append("Numero :"+res.getString 
(2)+"\n"); buffer.append ("CEP :"+res.getString 
(3)+"\n"); buffer.append ("Bairro :"+res.getString 
(4)+"\n"); buffer.append ("Cidade :"+res.getString 
(5)+"\n"); buffer.append ("Estado :"+res.getString 
(6)+"\n\n"); 
} 
//Show all data 
showMessage ("Endereco",buffer.toString ()); 
} 
} 
); 
 
} 
 
public void showMessage(String title,String Message) { 
AlertDialog.Builder builder = new AlertDialog.Builder 
(this); builder.setCancelable (true); 
builder.setTitle (title); 
builder.setMessage 
(Message); builder.show (); 
} 
 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26 
 
4. CONCLUSÃO 
Podemos atribuir que com o auxílio e aparato das ferramentas utilizadas 
nesse projeto temos opções de desenvolvimento e eficácia na produção de um 
software. 
Como o Android Studio que é composto de uma interface de modo 
atraente, onde se tem um modo de teste bastante interessante. 
 Já com o ASP.Net a facilidade de se criar aplicações e páginas web com 
menor complexidade , atrelado com o conhecimento adquirido ao decorrer, 
com o conteúdo das disciplinas apresentadas para junto com tais ferramentas 
culminar na satisfação e êxito de um projeto de sistema elaborado com 
resultado satisfatório. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27 
 
5. REFERÊNCIAS 
Weber, 2001] WEBER, K.C,; ROCHA, A.R.C e NASCIMENTO, C.J. Qualidade 
e produtividade em software, 4a edição renovada. São Paulo, Makron Books, 
2001. 
[Maldonado, 2001] Qualidade de Software, Teoria e prática. São Paulo: 
[DENNIS, 2005] DENNIS, Alan. Análise e Projeto de Sistemas. Rio de Janeiro, LTC, 
2005. 
[Pressman, 2002] PRESSMAN, R. Engenharia de Software. Rio de Janeiro: 
[MANZANO, 2015] MANZANO, José Augusto N. G. Estudo dirigido: Microsoft Visual 
C# community 2015. São Paulo, Editora Érica, 2015. 
[STELLAMN, 2011] STELLAMN, Andrew. Use a Cabeça! C#. Rio de Janeiro, Alta 
Books, 2011. 
[BRITO, 2020] BRITO, Robison Cris. Androide com Android Studio Passa a 
Passo. Rio de Janeiro, Ciência Moderna, 2020. 
 
 
	1. INTRODUÇÃO
	2. BANCO DE DADOS
	2.1. Modelo
	3. Linguagens de Programação
	3.1. C# - Mecanismo de Acesso ao Banco de Dados
	3.2. ASP.Net – Interface Gráfica com o Usuário
	3.2.1. Código Fonte
	3.3. Android – Interface Gráfica com o Usuário
	3.3.1. Código Fonte
	4. CONCLUSÃO
	5. REFERÊNCIAS