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

Mais procurados (20)

Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
 
Governança de Dados e Big Data_v02
Governança de Dados e Big Data_v02Governança de Dados e Big Data_v02
Governança de Dados e Big Data_v02
 
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
 
Base de Dados - Álgebra Relacional
Base de Dados - Álgebra RelacionalBase de Dados - Álgebra Relacional
Base de Dados - Álgebra Relacional
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Segurança física e lógica e análise de vulnerabilidade 1
Segurança física e lógica e análise de vulnerabilidade 1Segurança física e lógica e análise de vulnerabilidade 1
Segurança física e lógica e análise de vulnerabilidade 1
 
Design Estratégico - Inovação em Projetos, Processos e Negócios
Design Estratégico - Inovação em Projetos, Processos e NegóciosDesign Estratégico - Inovação em Projetos, Processos e Negócios
Design Estratégico - Inovação em Projetos, Processos e Negócios
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Desig thinking e confiança criativa
Desig thinking e confiança criativaDesig thinking e confiança criativa
Desig thinking e confiança criativa
 
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismo
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismoHd 2016.1 aula 7_influências das vanguardas europeias - futurismo
Hd 2016.1 aula 7_influências das vanguardas europeias - futurismo
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Bases De Dados
Bases De DadosBases De Dados
Bases De Dados
 
O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL
 
Como organizar arquivos digitais
Como organizar arquivos digitaisComo organizar arquivos digitais
Como organizar arquivos digitais
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Diagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasDiagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas Compostas
 
Principios do design
Principios do designPrincipios do design
Principios do design
 

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