Você está na página 1de 20

UNIVERSIDADE PAULISTA – UNIP EaD

CST ANÁLISE E DESENVOLVIMENTO DE SISTEMAS:


Projeto Integrado Multidisciplinar

JOÃO VITOR MARTINS NASCIMENTO – RA: 1964100

PROJETO INTEGRADO MULTIDISCIPLINAR VIII:


Codificação em C# do mecanismo de acesso a um trecho de banco de dados

POLO FRUTAL
2020
JOÃO VITOR MARTINS NASCIMENTO – RA: 1964100

PROJETO INTEGRADO MULTIDISCIPLINAR VIII:


Codificação em C# do mecanismo de acesso a um trecho de banco de dados

Projeto Integrado Multidisciplinar para obtenção do título


de graduação em Análise e Desenvolvimento de Sistemas
apresentado à Universidade Paulista – UNIP EaD.

Orientador(a): Prof. Cassiano Gunji

POLO FRUTAL
2020
RESUMO

O Projeto Integrado Multidisciplinar VII tem por objetivo utilizar os conhecimentos


adquiridos nas aulas realizadas na forma prática de aprendizado, abrangendo todas
as disciplinas cursadas no bimestre e interligando-as, sendo elas: Programação
Orientada a Objetos II, Desenvolvimento de Software para a Internet e Tópicos
Especiais de Programação Orientada a Objetos, apresentando conforme o Manual do
PIM VII a codificação do mecanismo de acesso a um trecho de banco de dados, assim
como os protótipos de interface gráfica com o usuário em ASP .Net e Android;
fomentando assim o hábito de executar projetos envolvendo múltiplas escolhas;
desenvolvendo a capacidade de identificar necessidades e propor soluções técnicas;
elencando, argumentando e justificando a respeito de metodologias referentes as
disciplinas acima citadas aplicando as normas da ABNT para a produção de trabalhos
acadêmicos.

Palavras-chave: Programação orientada a objetos. Banco de dados.


Desenvolvimento de software.
ABSTRACT

The Integrated Multidisciplinary Project VII aims to use the knowledge acquired in
classes carried out in the form of learning practice, covering all disciplines taken in
the two months and interconnecting them, namely: Object Oriented Programming II,
Software Development for the Internet and Special Object Oriented Programming
Topics, according to the PIM VII Manual following the mechanism for accessing a
database section, as well as the prototypes of graphical user interface in ASP .Net
and Android; thus fostering the habit of executing projects involving various choices;
developing the ability to identify needs and propose technical solutions; listing,
arguing and justifying regarding methodologies referring to the disciplines mentioned
above applying the ABNT rules for the production of academic papers.

Keywords: Object-oriented programming. Database. Software development.


SUMÁRIO

1 INTRODUÇÃO ................................................................................................. 5

2 O BANCO DE DADOS ..................................................................................... 6

2.1 Criação do banco de dados e tabelas ........................................................... 6

3 INTERFACES GRÁFICAS ............................................................................... 9

4 PROGRAMAÇÃO ORIENTADA A OBJETOS COM LINGUAGEM C# ......... 11

CONCLUSÃO ........................................................................................................... 12

REFERÊNCIAS......................................................................................................... 13

ANEXO – CÓDIGO .ASPX ...................................................................................... 14

ANEXO B – CÓDIGO EM C#.................................................................................... 17


5

1 INTRODUÇÃO

Com o avanço da tecnologia no mundo contemporâneo as empresas sejam


elas de grande, médio ou pequeno porte assim como instituições de ensino e outras
entidades públicas e privadas utilizam de software no gerenciamento das mais
diversas atividades como forma de auxílio, é como se fosse uma ferramenta
específica para tal e a grande vantagem é justamente essa. As múltiplas linguagens
de programação também passaram por transformações ao longo do tempo e foram
evoluídas ao ponto de “conversarem” entre si e assim oferecer mais suporte ao
desenvolvimento de aplicações. Algumas dessas relações está mencionada neste
projeto; isso porque o trecho do sistema que abaixo será descrito utiliza para seu
bom funcionamento, banco dados para guardar informações que poderão ser
requisitadas em ações futuras, e opera na versão de aplicativo para internet, ou seja,
dentro dessa aplicação também é implementada tags que compõe o HTML.
O objetivo deste trabalho é apresentar um trecho de um banco de dados que
é manipulado por classes utilizando a linguagem C#, irá constar nele os protótipos
das telas de acesso às operações crud. Tais atividades foram realizadas utilizando
as ferramentas de SGBD (Sistema de Gerenciamento de Banco de dados) MySql
Workbench da Oracle Corporation e as IDE’s (Ambiente de Desenvolvimento
Integrado) Visual Studio 2015 Community para o desenvolvimento de aplicativo para
internet e Visual Studio 2019 para desenvolvimento de aplicativo para Android
ambas da Microsoft. O trecho é responsável apenas por incluir, excluir e alterar
dados no banco, demais operações deveram ser prosseguidas por outros setores
para seus devidos fins que não serão aqui descritas.
Para exemplificação do funcionamento do trecho de sistema serão
incorporadas figuras representativas de cada passo; atenta-se que em algumas
poderão estar representado partes do código responsável pela execução do mesmo.
A sequência de tópicos deste trabalho foi definida pela sequência dos passos
no desenvolvimento do trecho, sendo inicialmente criado o banco dados, tabelas e
comandos indispensáveis ao sistema que o compõe, criação das interfaces gráficas
que o usuário se deparará para a inserção de novos registros no sistema e, por fim,
a codificação de back-end constando as classes para o sistema conseguir entender
a necessidade do usuário, seja para incluir registros, alterá-los ou também excluí-
los.
6

2 O BANCO DE DADOS

2.1 Criação do banco de dados e tabelas

A criação das tabelas segue os padrões definidos no Manual do PIM VIII que
deveriam constar cinco tabelas iniciais para o tratamento das inserções dos
registros.
Para criação do banco de dados foi necessário especificar um nome para
esse database, o qual foi nomeado como “bancodedados”. A nomeação é de
extrema importância, pois é através dela que o banco fornece informações
originárias dali para outro fim, à exemplo temos a conexão com o Visual Studio que
por sua vez requisita também o local do servidor, o nome de usuário e senha que é
definida pelo usuário no momento da instalação do SGBD.

Figura 1 – Mapa de tabelas do banco de dados

Fonte: João Vitor (2020)

A Figura 1 acima representa um mapa das tabelas gerado pelo Reverse


Enginer do MySql Workbench 8.0 que compõem o banco de dados, a principal delas
é a tabela denominada “pessoa”, pois é para ela que todas as outras existem,
diretamente ou indiretamente todas estão ligadas à ela, isso porque a tabela
“pessoa” recebe o id_pessoa o qual será requisitado para futuras inserções,
7

alterações e exclusões de registro de pessoas funcionando assim como um caminho


para encontrar certo registro.
A seguir mais detalhes da criação das tabelas:

Figura 2 - Tabelas primeira parte

Fonte: João Vitor (2020)

A Figura 2 representa a criação das tabelas “ENDERECO e PESSOA”,


primeiramente utilizamos o comando “use bancodedados;” para referenciar a
database criada determinando que as tabelas serão inseridas nesse banco, em
seguida começamos a montagem das tabelas.
O comando “create table ENDERECO” cria a tabela “ENDERECO” ao mesmo
tempo que a nomeia. Dentro desse comando, entre parênteses, são informados as
variáveis e definições dos parâmetros, temos nessa tabela sete variáveis sendo
elas: id_endereco do tipo int, que não aceita valores nulos e é incrementada
automaticamente conforme forem inseridos novos endereços no banco: usado como
referência para encontrar o endereço de certa pessoa no banco de dados;
logradouro: do tipo varchar como limite máximo de duzentos e cinquenta e seis
caracteres e que não aceita valores nulos, usada para guardar informação da rua,
avenida, praça, etc. do endereço da pessoa; numero_casa : do tipo int que não
aceita valores nulos e que é usada para representar o número da casa da pessoa;
8

cep: do tipo int que não aceita valores nulos, usada para representar o cep que
identifica a localidade do endereço da pessoa; bairro: do tipo varchar com limite
máximo de cinquenta caracteres e que não aceita valores nulos, representa o bairro
onde a pessoa mora; cidade: do tipo varchar com limite máximo de trinta caracteres
e que não aceita valores nulos, representa a cidade onde a pessoa reside; estado:
do tipo varchar com limite de vinte caracteres e que não aceita valores nulos, usada
para representar a unidade federativa do município ao qual a pessoa reside. Por fim
temos nesta tabela um parâmetro que define a variável id_endereco como sendo
uma chave primária (“primary key (id_endereco)”).
A segunda tabela no exemplo é a tabela “pessoa” que contém quatro
variáveis, sendo elas; id_pessoa: do tipo int que não aceita valores nulos e que é
incrementada automaticamente conforme forem inseridas novas pessoas no banco
de dados; nome: do tipo varchar com limite máximo de duzentos e cinquenta e seis
caracteres e que não aceita valores nulos, usada para representar o nome que a
pessoa tem; cpf: do tipo bigint que não aceita valores nulos, representa a numeração
de determinada pessoa no cadastro de pessoas físicas da Receita Federal, essa
numeração geralmente é utilizada para conceder buscas à uma determinada
pessoa. Por fim temos a variável endereço_pessoa: do tipo int que faz uma
referência a tabela ENDERECO através da variável id_endereco e acessa todos os
valores daquela tabela à critério do desenvolvedor.

Figura 3 - Tabelas segunda parte

Fonte: João Vitor (2020)


9

A Figura 3 apresenta a criação de três tabelas, sendo elas TELEFONE_TIPO,


TELEFONE e PESSOA_TELEFONE, essas tabelas estão todas interligadas a fim de
formar um só resultado para obter as especificações de contato via telefone com a
pessoa em questão. As tabelas estão em ordem de inserção, sendo assim é
necessário que se inclua primeiramente o tipo de telefone para assim inserir os
demais campos que especificam o contato da pessoa.

Ou você faz certo da primeira vez ou faz tudo de novo. Se uma equipe de
software buscar a qualidade em todas as suas atividades, a quantidade de
retrabalho será reduzida. Isso resulta em custos menores e, mais
importante, menor tempo para disponibilização do produto no mercado.
(ZANIN et al., 2018)

Na primeira tabela temos apenas as variáveis de id_tipotelefone: que não


aceita valore nulos, porém é incrementada automaticamente conforme forem sendo
inseridos novos tipos de telefone e tipo: que não aceita valore nulos e é do tipo
varchar com limite máximo de dez caracteres. Na segunda temos as variáveis,
id_telefone do tipo int incrementada automaticamente conforme novos registros de
números de telefone, temos também a variável numero_telefone, ddd e
tipo_telefone, ambas do tipo int e que não aceitam valores nulos.; a variável
tipo_telefone é uma chave estrangeira que faz referência à id_tipo telefone da
tabela TELEFONE_TIPO, e requere os valores por ela inseridos.
Por último temos a tabela PESSOA_TELEFONE que na verdade é uma
tabela associativa para que o banco de dados intenda que uma pessoa possa conter
vários telefones e um telefone possa pertencer à várias pessoas; para isso as duas
variáveis que compõem essa tabela precisam ser identificadas como chaves
primárias e chaves estrangeiras ao mesmo tempo.

3 INTERFACES GRÁFICAS

A seguir serão apresentadas as figuras que mostram o resultado final do


código aspx gerado no app Visual Studio.
A inserção de dados bem como o funcionamento do sistema não é de caráter
deste projeto. Sendo necessário adicionar comandos aos quais darão ao
requisitante seu devido fim.
Veja a compilação de figuras que resulta na interface gráfica do trecho:
10

Figura 4 - Protótipo da tela no ambiente de desenvolvimento integrado

Fonte: João Vitor (2020)

Figura 5 - Protótipo da tela no navegador

Fonte: João Vitor (2020)


11

As Figuras 4 e 5 demonstram a tela exibida ao usuário para inserção de


registros no banco de dados através da interface gerada no app. Visual Studio, a
inserção de dados é feita utilizando os campos de texto e inseridas após um clique
no botão inserir, ao inserir a pessoa ela constará no gridview e a partir daí o usuário
conseguirá efetuar as alterações no registro bem como exclusão do mesmo. Foi
necessária a demonstração das duas telas, pois como não há dados inseridos no
banco ainda, o gridview por padrão não aparecerá no navegador.

4 PROGRAMAÇÃO ORIENTADA A OBJETOS COM LINGUAGEM C#

O código do mecanismo de acesso ao banco de dados está em anexo, Anexo


B.
12

CONCLUSÃO

Podemos concluir deste projeto, que a programação orientada a objetos exige


conhecimento dos diversos tipos de variáveis para compatibilidade de dados e
otimização do sistema no resultado final bem como das diversas bibliotecas
existentes disponíveis para serem usadas no ambiente de desenvolvimento as quais
nem todas estão por padrão.
Há diversos sistemas de gerenciamento de banco de dados disponíveis para
download existentes na internet, porém no momento da escolha devemos nos
atentar aos detalhes que fazem toda a diferença em programação, como por
exemplo a forma de passar instruções. Hoje a linguagem mais utilizada para os
comandos em banco de dados é a SQL que é utilizada nos principais SGBD’s como
o MySQL, SQLServer, PostgreeSql, NoSql. Essa seria a grande vantagem, pois
universalizar um trecho de sistema deve ser a meta de qualquer desenvolvedor, pois
dessa forma facilita a ampliação do software pelas outras equipes tendo em vista
que há maior número de profissionais capacitados para isso.
13

REFERÊNCIAS

DEITEL, Harvey; DEITEL, Paul; STEINBUHLER, Kate. C#: como programar.


Londres: Pearson Universidades, 2003. 1200 p.

HEUSER, Carlos Alberto. Projeto de Banco de Dados. 6. ed. Porto Alegre:


Bookman, 2008. 282 p.

TONSIG, Sergio Luiz. MySQL - Aprendendo na Prática. Rio de Janeiro: Ciência


Moderna Edit, 2006. 304 p.

ZANIN, Aline et al. Qualidade de Software. Porto Alegre: Sagah, 2018. 112 p.
Revisão Técnica de Maria de Fátima Webber do Prado Lima.
14

ANEXO – CÓDIGO .ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"


Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<p>
Texte de Conexão com Banco de Dados:
<asp:Label ID="Label1" runat="server" BackColor="#FFFF99"
Text="Carregando..."></asp:Label>
</p>
<p>
&nbsp;</p>
<p>
Nome:<asp:TextBox ID="TextBox1" runat="server" style="margin-left: 32px"
Width="418px"></asp:TextBox>
</p>
<p>
CPF:<asp:TextBox ID="TextBox2" runat="server" style="margin-left: 42px"
Width="331px"></asp:TextBox>
</p>
<p>
Logradouro:<asp:TextBox ID="TextBox3" runat="server"
Width="416px"></asp:TextBox>
</p>
<p>
Nº:<asp:TextBox ID="TextBox4" runat="server" style="margin-left: 55px"
Width="83px"></asp:TextBox>
</p>
<p>
CEP:<asp:TextBox ID="TextBox5" runat="server" style="margin-left: 42px"
Width="218px"></asp:TextBox>
</p>
15

<p>
Bairro:<asp:TextBox ID="TextBox6" runat="server" style="margin-left: 33px"
Width="362px"></asp:TextBox>
</p>
<p>
Cidade:<asp:TextBox ID="TextBox7" runat="server" style="margin-left: 28px"
Width="360px"></asp:TextBox>
</p>
<p>
Estado:<asp:TextBox ID="TextBox8" runat="server" style="margin-left: 30px"
Width="360px"></asp:TextBox>
</p>
<p>
DDD:<asp:TextBox ID="TextBox9" runat="server" style="margin-left: 39px"
Width="44px"></asp:TextBox>
</p>
<p>
Telefone:<asp:TextBox ID="TextBox10" runat="server" style="margin-left: 19px"
Width="133px"></asp:TextBox>
</p>
<p>
Tipo:<asp:TextBox ID="TextBox11" runat="server" style="margin-left: 42px"
Width="162px"></asp:TextBox>
</p>
<p>
<asp:Button ID="Button1" runat="server" Text="Incluir" />
</p>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"


BackColor="#CCCCCC" BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px"
CaptionAlign="Bottom" CellPadding="4" CellSpacing="2" ClientIDMode="Static"
EmptyDataText="Sem registros para exibir." ForeColor="Black" ShowFooter="True"
ShowHeaderWhenEmpty="True" Width="812px" >
<Columns>

<asp:CommandField ShowDeleteButton="True" />


<asp:CommandField ButtonType="Button" ShowEditButton="True" />
<asp:CheckBoxField HeaderText="Pessoa">
<ItemStyle Wrap="False" />
16

</asp:CheckBoxField>
<asp:CheckBoxField HeaderText="CPF" />
<asp:CheckBoxField HeaderText="Logradouro" />
<asp:CheckBoxField HeaderText="Nº" />
<asp:CheckBoxField HeaderText="Bairro" />
<asp:CheckBoxField HeaderText="Cidade" />
<asp:CheckBoxField HeaderText="CEP" />
<asp:CheckBoxField HeaderText="Estado" />
<asp:CheckBoxField HeaderText="DDD" />
<asp:CheckBoxField HeaderText="Telefone" />
<asp:CheckBoxField HeaderText="Tipo" />
</Columns>
<FooterStyle BackColor="#CCCCCC" />
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
<RowStyle BackColor="White" />
<SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="Gray" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#383838" />
</asp:GridView>

</form>
</body>
</html>
17

ANEXO B – CÓDIGO EM C#

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 MySql.Data;
using System.Data;

public partial class _Default : System.Web.UI.Page


{
MySqlConnection con = new MySqlConnection("server=localhost; Uid=root; Password=brasil3423;
Database=bancodedados; Port=3306");
private object tipo;

protected void Page_Load(object sender, EventArgs e)


{

try
{
MySqlConnection con = new MySqlConnection("server=localhost; Uid=root;
Password=brasil3423; Database=bancodedados; Port=3306");
con.Open();
Label1.BackColor = System.Drawing.Color.Green;
Label1.Text = "Ok !";
con.Close();
}
catch
{
Label1.BackColor = System.Drawing.Color.Red;
Label1.Text = "Erro !";
}
}

public class Telefone_Tipo


{
protected int id_tipotelefone;
public string tipo;

public Telefone_Tipo(int id_tipotelefone, String tipo)


{
this.id_tipotelefone = id_tipotelefone;
this.tipo = "Celular";

public class Telefone


{
protected int id_telefone;
public int numero_telefone;
public int ddd;
18

public Telefone(int id_telefone, int numero_telefone, int ddd)


{
this.id_telefone = id_telefone;
this.numero_telefone = numero_telefone;
this.ddd = ddd;
}

public class Endereco


{
protected int id_endereco;
private string logradouro;
private int numero;
private int cep;
private string bairro;
private string cidade;
private string estado;

public Endereco(int id_endereco, String logradouro, int numero, int cep, String bairro, String
cidade, String estado)
{
this.id_endereco = id_endereco;
this.logradouro = logradouro;
this.numero = numero;
this.cep = cep;
this.bairro = bairro;
this.cidade = cidade;
this.estado = estado;
}

public class Pessoa


{
protected int id_pessoa;
string nome;
long cpf;
Endereco endereco_pessoa;

}
public class Pessoa_DAO
{

}
19

Você também pode gostar