desenvolvimento de um crud utilizando stored procedure

Post on 15-Feb-2017

465 Views

Category:

Software

7 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Prof. Me. Fernando Roberto Proença

Desenvolvimento de

um CRUD utilizando

Stored Procedure

XV SEMINFO11/11/15

http://www.fespmg.edu.br/Cursos/graduacao/sistemas-de-informacao

Sumário

O que é Stored Procedure?

Definição, características, vantagens, sintaxe e

exemplos

Stored Procedure no SQL Server

Apresentação das Telas do Sistema

Desenvolvimento do CRUD do Sistema

utilizando Stored Procedure

2

Stored Procedure – Definição

Stored Procedure ou Procedimento

armazenado é um conjunto de comandos em

SQL agrupados em um Procedimento, que são

compilados e armazenados e um Banco de

Dados.

Para cada Stored Procedure é atribuído um

nome, que pode ser chamado a qualquer

momento, tanto pelo SGBD, quanto por um

sistema que tem acesso ao Banco de Dados.

3

Stored Procedure – Definição4

Stored Procedure – Características

Possui um nome de identificação

Pode receber um ou mais parâmetros de entrada

Pode retornar diversos valores como parâmetro

de saída

Ex.: Para indicar aceitação ou falha na execução

Executa no servidor (BD)

5

Stored Procedure – Vantagens

Desempenho

Reduz o tráfego na rede

Melhora a performance

Segurança

Cria mecanismos de segurança

Acesso Restrito

6

Stored Procedure – Vantagens

Manutenção

Facilita o gerenciamento

Encapsulam comandos SQL no próprio servidor,

estando disponível para várias aplicações.

Parte da lógica do sistema pode ser armazenada

no próprio BD, em vez de ser codificada em várias

aplicações.

7

Stored Procedure – Sintaxe em

SQL Server

Regras: O nome da procedure deve seguir as regras para criação

de identificadores

Nome do parâmetro deve iniciar por @ e deve ser único na lista de argumentos, seguido do seu tipo

Ex.: @nome varchar(50), @idade int, @valor float,

Todos os parâmetros são considerados de entrada, exceto se houver OUTPUT após sua definição.

8

CREATE PROCEDURE <nome> [parâmetro] AS BEGIN

<instrução SQL>END

Stored Procedure – Sintaxe em

SQL Server

Para uma Stored Procedure (sp) ser executada,

é necessário fazer uma chamada ao comando

EXECUTE...

9

EXEC[UTE] <nome da sp> [valor do parâmetro]

Exemplo de uma Stored Procedure que retorna

“Olá Mundo!!!”

Uma chamada a este procedimento seria:

Criando uma Stored Procedure em

SQL Server10

CREATE PROCEDURE OlaMundo AS

BEGIN

SELECT 'Olá Mundo!!!' AS Ola;

END

EXEC OlaMundo 5;

Exemplo de uma Stored Procedure que calcula a

Raiz Quadrada de um número.

Uma chamada a este procedimento seria:

Criando uma Stored Procedure em

SQL Server11

CREATE PROCEDURE RaizQuadrada @numero int AS

BEGIN

SELECT @numero * @numero AS Quadrado;

END

EXEC RaizQuadrada 5;

Atualizando uma Stored Procedure

em SQL Server12

Atualizando uma Stored Procedure existente:

Exemplo:

ALTER PROCEDURE RaizQuadrada @numero int AS

BEGIN

SELECT @numero * 2 AS Quadrado;

END

ALTER PROCEDURE <nome> [parâmetro] AS BEGIN

<instrução SQL>END

Excluindo uma Stored Procedure

em SQL Server13

Excluindo uma Stored Procedure:

Exemplo:

DROP PROCEDURE RaizQuadrada;

DROP PROCEDURE <nome da sp>;

Dúvidas?14

Vamos para a Prática!!!15

Criando um BD e Stored Procedure

no SQL Server – Olá Mundo!!!16

1. CREATE DATABASE bdExemplo2. USE bdExemplo3. CREATE PROCEDURE OlaMundo

BEGINSELECT 'Olá Mundo!!!' AS ola;

END

EXEC OlaMundo;

Stored Procedure no SQL Server –

Cálculo da Raiz Quadrada17

1. CREATE PROCEDURE RaizQuadrada @numero int ASBEGIN

SELECT @numero * @numero AS Quadrado;END

EXEC RaizQuadrada 5;

Telas do Sistema18

Tela de Cadastro de Clientes

19

Tela de Consulta de Clientes

20

Tela de Atualização dos Dados de um

determinado Cliente21

Tela de Exclusão de um determinado

Cliente22

Desenvolvimento do CRUD em

Windows Forms C# utilizando

Stored Procedure SQL Server

Comunicação entre Sistema e Banco de

Dados via Stored Procedure23

Criando uma Tabela no BD24

1. CREATE TABLE tblCliente (id int identity(1,1) primary key,nome varchar(50) NULL,idade int NULL,credito float NULL

)

Criando uma Stored Procedure com comando de

Inserção (Insert):

Executando o procedimento criado:

Stored Procedure com Comando de

Inserção25

CREATE PROCEDURE InsereCliente @nomevarchar(50), @idade int, @credito float ASBEGIN

INSERT INTO tblCliente(nome, idade, credito)VALUES(@nome, @idade, @credito);

END

EXECUTE InsereCliente 'Jose', 35, 100;

Definindo a String de Conexão com o BD

// Define String de Conexão com BD SQL Server

static String strConexao = @"Data Source=localhost; InitialCatalog=bdExemplo; Integrated Security=True";

// Cria a Conexão com o BD

SqlConnection con = new SqlConnection(strConexao);

26

Método de Inserção – Cadastro de Cliente

private void btnCadastrar_Click(object sender, EventArgs e){

try{

con.Open();

SqlCommand cmd = new SqlCommand("EXECUTE InsereCliente

@nome, @idade, @credito", con);

cmd.Parameters.Add(new SqlParameter("@nome", txtNome.Text));

cmd.Parameters.Add(new SqlParameter("@idade",

Convert.ToInt32(txtIdade.Text.Trim())));

cmd.Parameters.Add(new SqlParameter("@credito",

float.Parse(txtCredito.Text.Trim())));

cmd.ExecuteNonQuery();

MessageBox.Show("Cliente Cadastrado com Sucesso!");

}catch (Exception erro){

MessageBox.Show("Erro: " + erro.Message);

}finally{

con.Close();

}

}

27

Criando uma Stored Procedure com comando de

Seleção (Select):

Executando o procedimento criado:

Stored Procedure com Comando de

Seleção28

CREATE PROCEDURE BuscaClientes ASBEGINSELECT * FROM tblCliente;

END

EXECUTE BuscaClientes;

Método de Consulta – Busca Todos Clientes

void PreencheDgvClientes(){

try {

con.Open();

DataTable tabela = new DataTable();

SqlCommand cmd = new SqlCommand("EXECUTE BuscaClientes", con);

SqlDataAdapter adaptador = new SqlDataAdapter(cmd);

adaptador.Fill(tabela);

dgvClientes.DataSource = tabela;

tabControl1.SelectedTab = tabPage2;

} catch (Exception erro){

Console.WriteLine(erro.Message);

} finally {

con.Close();

}

}

29

Criando uma Stored Procedure com comando de

Seleção utilizando Filtros:

Executando o procedimento criado:

Stored Procedure com Comando de

Seleção utilizando Filtros30

CREATE PROCEDURE BuscaClientePorId @id int ASBEGIN

SELECT * FROM tblCliente WHERE id = @id;END

EXECUTE BuscaClientePorId 1;

Método de Consulta – Busca Determinado

Cliente (1/2)

private void btnBuscarCliente_Click(object sender, EventArgs e){

try {

con.Open();

SqlCommand cmd = new SqlCommand("EXECUTE BuscaClientePorId @id", con);

cmd.Parameters.Add(new SqlParameter("@id",

Convert.ToInt32(txtIdCliente.Text.Trim())));

SqlDataReader clientes = cmd.ExecuteReader();

if (clientes.HasRows){

while (clientes.Read()){

txtNomeA.Text = clientes["nome"].ToString();

txtIdadeA.Text = clientes["idade"].ToString();

txtCreditoA.Text = clientes["credito"].ToString();

}

}

31

else{

MessageBox.Show("Cliente não encontrado!!!");

}

} catch (Exception erro) {

Console.WriteLine(erro.Message);

} finally {

con.Close();

}

}

32

Método de Consulta – Busca Determinado

Cliente (2/2)

Criando uma Stored Procedure com comando de

Atualização (Update):

Executando o procedimento criado:

Stored Procedure com Comando de

Atualização33

CREATE PROCEDURE AtualizaCliente @nome varchar(50),@idade int, @credito float, @id int ASBEGIN

UPDATE tblCliente SET nome = @nome,idade = @idade, credito = @creditoWHERE id = @id;

END

EXECUTE AtualizaCliente 'Maria', 42, 650, 1;

private void btnAtualizar_Click(object sender, EventArgs e){

try {

con.Open();

SqlCommand cmd = new SqlCommand("EXECUTE AtualizaCliente@nome, @idade, @credito, @id", con);

cmd.Parameters.Add(new SqlParameter("@nome", txtNomeA.Text));

cmd.Parameters.Add(new SqlParameter("@idade", Convert.ToInt32(txtIdadeA.Text.Trim())));

cmd.Parameters.Add(new SqlParameter("@credito", float.Parse(txtCreditoA.Text.Trim())));

cmd.Parameters.Add(new SqlParameter("@id", Convert.ToInt32(txtIdCliente.Text.Trim())));

cmd.ExecuteNonQuery();

MessageBox.Show("Cliente Atualizado com Sucesso!");

}

34

Método de Atualização – Atualiza dados

do Cliente (1/2)

catch (Exception erro){

MessageBox.Show("Erro: " + erro.Message);

} finally {

con.Close();

PreencheDgvClientes();

}

}

35

Método de Atualização – Atualiza dados

do Cliente (2/2)

Criando uma Stored Procedure com comando de

Exclusão (Delete):

Executando o procedimento criado:

Stored Procedure com Comando de

Exclusão36

CREATE PROCEDURE ExcluiCliente @id int ASBEGIN

DELETE FROM tblCliente WHERE id = @id;END

EXECUTE ExcluiCliente 1;

Método de Exclusão – Exclui um

determinado Cliente

private void btnExcluir_Click(object sender, EventArgs e){

try {

con.Open();

SqlCommand cmd = new SqlCommand("EXECUTE ExcluiCliente @id", con);

cmd.Parameters.Add(new SqlParameter("@id", Convert.ToInt32(txtIdClienteE.Text.Trim())));

cmd.ExecuteNonQuery();

MessageBox.Show("Cliente Excluído com Sucesso!");

} catch (Exception erro) {

MessageBox.Show("Erro: " + erro.Message);

} finally {

con.Close();

PreencheDgvClientes();

}

}

37

Dúvidas?38

Valeu Galera!!!39

Prof. Me. Fernando Roberto Proença

fernando.proenca@fespmg.edu.br

Referências

ELMASRI, R.; NAVATHE; S.. B. Sistemas de banco de

dados. 6. ed. São Paulo: Pearson, 2011.

MORONI, Herbert. Treinamento Profissional em C#.net.

São Paulo: Digerati Books, 2004.

https://msdn.microsoft.com/en-us/library/ms345415.aspx

http://www.devmedia.com.br/introducao-as-stored-

procedure-com-sql-server-2000-2005/2213

http://imasters.com.br/artigo/223/sql-server/criacao-e-uso-

de-stored-procedures/

http://www.codeproject.com/Articles/126898/Sql-Server-

How-To-Write-a-Stored-Procedure-in-SQL

https://www.youtube.com/watch?v=7qWOLKItjJ0

40

top related