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