0% acharam este documento útil (0 voto)
24 visualizações16 páginas

Poo 03

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
24 visualizações16 páginas

Poo 03

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

UNIVERSIDADE DE BELAS – UNIBELAS

FACULDADE DE ENGENHARIA
DEPARTAMENTO DE ENGENHARIA INFORMÁTICA
__________________ || ____________________

DISCIPLINA: POO-IV

DOCENTE: JOSÉ QUEIRÓS


E-mail: [Link]@[Link]
Windows Forms .NET

Criar um aplicativo Windows Forms no Visual Studio com C#


Windows Forms .NET

Criar um aplicativo Windows Forms no Visual Studio com C#

A aplicação possui somente um formulário e faz o CRUD -Inclusão,


exclusão, atualização e selecção - na tabela Contatos da base de
dados Cadastro do SQL Server.
Windows Forms .NET

script SQL para criar a tabela Contatos


USE[Cadastro]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Contatos] (

[id][int] IDENTITY(1, 1) NOT NULL,


[nome] [nchar] (100) NULL,
[endereco][nchar] (200) NULL,
[telemovel][nchar] (15) NULL,
[email][nchar] (100) NULL,
CONSTRAINT[PK_Contatos] PRIMARY KEY CLUSTERED
(

[id] ASC
)WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON[PRIMARY]
) ON[PRIMARY]
GO
Windows Forms .NET

script C# usado para criar o aplicativo

Devemos incluir no projecto uma referência ao namespace


: [Link] e [Link] para aceder
os recursos da ADO .NET.

using System;
using [Link];
using [Link];
using [Link];
Windows Forms .NET

script C# usado para criar o aplicativo

No início do formulário vamos declarar a string de conexão e


algumas variáveis objectos para ser usado no projecto:
public partial class Form1 : Form
{

SqlConnection con = new SqlConnection("Data Source=.;Initial


Catalog=Cadastro;Integrated Security=True");
SqlCommand cmd;
SqlDataAdapter adapt;
int id = 0;
public Form1()
{
InitializeComponent();
ExibirDados();
}
Windows Forms .NET

script C# usado para criar o aplicativo

No construtor do formulário chamamos o método ExibirDados() para aceder


a tabela e exibir informações no controle DataGridView

public Form1() {
InitializeComponent();
ExibirDados();
}
Windows Forms .NET

script C# usado para criar o aplicativo


private void ExibirDados()
{
try
A seguir temos o código do {
[Link]();
método ExibirDados() que DataTable dt = new DataTable();
abre a conexão, cria um adapt = new SqlDataAdapter("SELECT * FROM
DataTable e acede todos os Contatos", con);
registros da [Link](dt);
[Link] = dt;
tabela Contatos e preenche }
o DataTable exibindo-o a catch
seguir no DatagridView: {
throw;
}
finally
{
[Link]();
}
}
Windows Forms .NET

script C# usado para criar o aplicativo


private void btn_salvar_Click_1(object sender, EventArgs e)
{

A seguir temos "")


if ([Link] != "" && [Link] != "" && [Link] != "" && [Link] !=

{
o código do try
{
botão Novo qu cmd = new SqlCommand("INSERT INTO Contatos(nome,endereco,celular,telefone,email)
VALUES(@nome,@endereco,@celular,@telefone,@email)", con);
e limpa os [Link]();
[Link]("@nome", [Link]());
campos do [Link]("@endereco", [Link]());
[Link]("@telemovel", [Link]());

formulário : [Link]("@email", [Link]());


[Link]();
[Link]("Cadastro feito com sucesso...");
}
catch (Exception ex)
{
[Link]("Erro : " + [Link]);
}
finally
{
[Link]();
ExibirDados();
// LimparDados();
}
}
else
{
Windows Forms .NET
private void btn_salvar_Click_1(object sender, EventArgs e)
{
if ([Link] != "" && [Link] != "" && [Link] != "" && [Link] != "")
{
try
{
cmd = new SqlCommand("INSERT INTO Contatos(nome,endereco,celular,telefone,email)
VALUES(@nome,@endereco,@celular,@telefone,@email)", con);
[Link]();
[Link]("@nome", [Link]());
[Link]("@endereco", [Link]());
[Link]("@telemovel", [Link]());
[Link]("@email", [Link]());
[Link]();

}
[Link]("Cadastro feito com sucesso...");
Para salvar as informações de
catch (Exception ex)
{ um novo Contato usamos o
[Link]("Erro : " + [Link]);
}
finally
código a seguir no
{
[Link]();
botão Salvar:
ExibirDados();
// LimparDados();
}
}
else
{
[Link]("Informe todos os dados requeridos");
}
}
Windows Forms .NET

A seguir temos o código do botão Novo que limpa os campos do


formulário :

private void btn_novo_Click(object sender, EventArgs e)


{
[Link] = "";
[Link] = "";
[Link] = "";
[Link] = "";
[Link]();
}
Windows Forms .NET

private void btn_actualizar_Click(object sender, EventArgs e)


{
if ([Link] != "" && [Link] != "" && [Link] != "" && [Link] != "")
{
try
{
cmd = new SqlCommand("UPDATE Contatos SET nome=@nome, endereco=@endereco, celular=@celular,telefone=@telefone,email=@email
WHERE id=@id", con);
[Link]();
[Link]("@id", id);
[Link]("@nome", [Link]());
[Link]("@endereco", [Link]());
[Link]("@telemovel", [Link]());
[Link]("@email", [Link]());
[Link]();
[Link]("Registro atualizado com sucesso...");
}
catch (Exception ex) Para atualizar registro definimos
{
[Link]("Erro : " + [Link]); uma instrução SQL - UPDATE
}
finally SET.
{
[Link]();
ExibirDados();
// LimparDados();
}
}
else
{
[Link]("Informe todos os dados requeridos");
}
}
Windows Forms .NET

private void btn_eliminar_Click(object sender, EventArgs e)


{
if (id != 0)
{
if ([Link]("Deseja Eliminar este registro ?", "Agenda", [Link], [Link]) == [Link])
{
try
{
cmd = new SqlCommand("DELETE Contatos WHERE id=@id", con);
[Link]();
[Link]("@id", id);
[Link](); O código para excluir um contato
[Link]("registro eliminado com sucesso...!");
} usa a instrução
catch (Exception ex)
{ SQL DELETE com a
}
[Link]("Erro : " + [Link]);
cláusula WHERE e o código do
finally
{ contato
[Link]();
ExibirDados();
//LimparDados();
}
}
}
else
{
[Link]("Selecione um registro para eliminar");
}
}
Windows Forms .NET

O utilizador pode seleccionar uma linha do controle DataGridView para exibir os respectivos
dados nas caixas de texto do formulário. O código que faz isso é o seguinte:

private void dgvAgenda_CellContentClick(object sender, DataGridViewCellEventArgs e)


{
try
{
id = Convert.ToInt32([Link][[Link]].Cells[0].[Link]());
[Link] = [Link][[Link]].Cells[1].[Link]();
[Link] = [Link][[Link]].Cells[2].[Link]();
[Link] = [Link][[Link]].Cells[4].[Link]();
[Link] = [Link][[Link]].Cells[5].[Link]();
}
catch { }
}
Windows Forms .NET

Este projecto foi criado usando uma abordagem para iniciantes mas ele fere os
princípios das boas práticas de programação visto que o formulário além de
apresentar os dados também faz o acesso e a manutenção dos dados.

Em uma aplicação mais robusta recomenda-se separar o código de acesso a dados em


uma classe ou um novo projecto para separar as responsabilidades.

Fica como um desafio a criação de uma classe para aceder os dados e a remoção de
todo o código de acesso a dados e suas referências do formulário.
Windows Forms .NET

C# - Agenda de Contactos - CRUD com SQL Server

Você também pode gostar