SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
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ção
4
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 bdExemplo
2. USE bdExemplo
3. CREATE PROCEDURE OlaMundo
BEGIN
SELECT 'Olá Mundo!!!' AS ola;
END
EXEC OlaMundo;
Stored Procedure no SQL Server –
Cálculo da Raiz Quadrada17
1. CREATE PROCEDURE RaizQuadrada @numero int AS
BEGIN
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 Cliente
21
Tela de Exclusão de um determinado
Cliente
22
Desenvolvimento do CRUD em
Windows Forms C# utilizando
Stored Procedure SQL Server
Comunicação entre Sistema e Banco de
Dados via Stored Procedure
23
Criando uma Tabela no BD
24
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 @nome
varchar(50), @idade int, @credito float AS
BEGIN
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; Initial
Catalog=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 AS
BEGIN
SELECT * 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 AS
BEGIN
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 AS
BEGIN
UPDATE tblCliente SET nome = @nome,
idade = @idade, credito = @credito
WHERE 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 AS
BEGIN
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

Mais conteúdo relacionado

Mais procurados

Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regular
wab030
 
Solução listaexercicios 1º bimestre_2-2016_concretoii
Solução listaexercicios 1º bimestre_2-2016_concretoiiSolução listaexercicios 1º bimestre_2-2016_concretoii
Solução listaexercicios 1º bimestre_2-2016_concretoii
roger forte
 
Estrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasEstrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listas
Adriano Teixeira de Souza
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
Armando Daniel
 
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Flávio Freitas
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
Pacc UAB
 

Mais procurados (20)

Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regular
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Solução listaexercicios 1º bimestre_2-2016_concretoii
Solução listaexercicios 1º bimestre_2-2016_concretoiiSolução listaexercicios 1º bimestre_2-2016_concretoii
Solução listaexercicios 1º bimestre_2-2016_concretoii
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Enderecamento ip
Enderecamento ipEnderecamento ip
Enderecamento ip
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Estrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasEstrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listas
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
 
Acesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCAcesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBC
 
Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
jQuery na Prática!
jQuery na Prática!jQuery na Prática!
jQuery na Prática!
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Matlab 7
Matlab 7Matlab 7
Matlab 7
 

Destaque

Sql Server Stored Procedures
Sql Server   Stored ProceduresSql Server   Stored Procedures
Sql Server Stored Procedures
alexdutra
 
Manual java swing
Manual java swingManual java swing
Manual java swing
Robert Wolf
 

Destaque (6)

Sql Server Stored Procedures
Sql Server   Stored ProceduresSql Server   Stored Procedures
Sql Server Stored Procedures
 
Manual java swing
Manual java swingManual java swing
Manual java swing
 
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
SQLSaturday #253 | Brasília 2013 - Mapeamento Objeto-Relacional com o Entity ...
 
The Developer’s Conference (TDC) 2015 Florianópolis: O Entity Framework 7 na ...
The Developer’s Conference (TDC) 2015 Florianópolis: O Entity Framework 7 na ...The Developer’s Conference (TDC) 2015 Florianópolis: O Entity Framework 7 na ...
The Developer’s Conference (TDC) 2015 Florianópolis: O Entity Framework 7 na ...
 
T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012T-SQL na prática com SQL SERVER Express 2012
T-SQL na prática com SQL SERVER Express 2012
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 

Semelhante a Desenvolvimento de um CRUD utilizando Stored Procedure

Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Vitor Ciaramella
 

Semelhante a Desenvolvimento de um CRUD utilizando Stored Procedure (20)

Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
 
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows AzureWindows Azure 5/8 - Recursos adicionais do Windows Azure
Windows Azure 5/8 - Recursos adicionais do Windows Azure
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Apostila aed
Apostila aedApostila aed
Apostila aed
 
ORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NETORM - TDC Porto Alegre 2014 Trilha .NET
ORM - TDC Porto Alegre 2014 Trilha .NET
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)
 
Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Jdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITYJdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITY
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
02 - Fundamentos de Servlets
02 - Fundamentos de Servlets02 - Fundamentos de Servlets
02 - Fundamentos de Servlets
 
Python 04
Python 04Python 04
Python 04
 
Java13
Java13Java13
Java13
 
Ado.net.exmplos.praticos
Ado.net.exmplos.praticosAdo.net.exmplos.praticos
Ado.net.exmplos.praticos
 
Java 16 Jdbc
Java 16 JdbcJava 16 Jdbc
Java 16 Jdbc
 
um breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidadesum breve treinamento sobre SQL e suas funcionalidades
um breve treinamento sobre SQL e suas funcionalidades
 

Desenvolvimento de um CRUD utilizando Stored Procedure

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. Stored Procedure – Definição 4
  • 5. 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
  • 6. Stored Procedure – Vantagens  Desempenho  Reduz o tráfego na rede  Melhora a performance  Segurança  Cria mecanismos de segurança  Acesso Restrito 6
  • 7. 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
  • 8. 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
  • 9. 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]
  • 10.  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;
  • 11.  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;
  • 12. 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
  • 13. Excluindo uma Stored Procedure em SQL Server13  Excluindo uma Stored Procedure:  Exemplo: DROP PROCEDURE RaizQuadrada; DROP PROCEDURE <nome da sp>;
  • 15. Vamos para a Prática!!!15
  • 16. Criando um BD e Stored Procedure no SQL Server – Olá Mundo!!!16 1. CREATE DATABASE bdExemplo 2. USE bdExemplo 3. CREATE PROCEDURE OlaMundo BEGIN SELECT 'Olá Mundo!!!' AS ola; END EXEC OlaMundo;
  • 17. Stored Procedure no SQL Server – Cálculo da Raiz Quadrada17 1. CREATE PROCEDURE RaizQuadrada @numero int AS BEGIN SELECT @numero * @numero AS Quadrado; END EXEC RaizQuadrada 5;
  • 19. Tela de Cadastro de Clientes 19
  • 20. Tela de Consulta de Clientes 20
  • 21. Tela de Atualização dos Dados de um determinado Cliente 21
  • 22. Tela de Exclusão de um determinado Cliente 22
  • 23. Desenvolvimento do CRUD em Windows Forms C# utilizando Stored Procedure SQL Server Comunicação entre Sistema e Banco de Dados via Stored Procedure 23
  • 24. Criando uma Tabela no BD 24 1. CREATE TABLE tblCliente ( id int identity(1,1) primary key, nome varchar(50) NULL, idade int NULL, credito float NULL )
  • 25.  Criando uma Stored Procedure com comando de Inserção (Insert):  Executando o procedimento criado: Stored Procedure com Comando de Inserção25 CREATE PROCEDURE InsereCliente @nome varchar(50), @idade int, @credito float AS BEGIN INSERT INTO tblCliente(nome, idade, credito) VALUES(@nome, @idade, @credito); END EXECUTE InsereCliente 'Jose', 35, 100;
  • 26. Definindo a String de Conexão com o BD // Define String de Conexão com BD SQL Server static String strConexao = @"Data Source=localhost; Initial Catalog=bdExemplo; Integrated Security=True"; // Cria a Conexão com o BD SqlConnection con = new SqlConnection(strConexao); 26
  • 27. 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
  • 28.  Criando uma Stored Procedure com comando de Seleção (Select):  Executando o procedimento criado: Stored Procedure com Comando de Seleção28 CREATE PROCEDURE BuscaClientes AS BEGIN SELECT * FROM tblCliente; END EXECUTE BuscaClientes;
  • 29. 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
  • 30.  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 AS BEGIN SELECT * FROM tblCliente WHERE id = @id; END EXECUTE BuscaClientePorId 1;
  • 31. 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
  • 32. 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)
  • 33.  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 AS BEGIN UPDATE tblCliente SET nome = @nome, idade = @idade, credito = @credito WHERE id = @id; END EXECUTE AtualizaCliente 'Maria', 42, 650, 1;
  • 34. 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)
  • 35. catch (Exception erro){ MessageBox.Show("Erro: " + erro.Message); } finally { con.Close(); PreencheDgvClientes(); } } 35 Método de Atualização – Atualiza dados do Cliente (2/2)
  • 36.  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 AS BEGIN DELETE FROM tblCliente WHERE id = @id; END EXECUTE ExcluiCliente 1;
  • 37. 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
  • 39. Valeu Galera!!! 39 Prof. Me. Fernando Roberto Proença fernando.proenca@fespmg.edu.br
  • 40. 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