SlideShare uma empresa Scribd logo
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

PDF
Design patterns in PHP
PDF
Threads 03: Ciclo de vida, aplicações e boas práticas
PDF
Node.js e Express
PDF
Introdução a Banco de Dados (Parte 3)
PDF
Arquitetura Node com NestJS
PPTX
Triggers no SQL Server
PDF
Curso MySQL #03 - Criando um Banco de Dados MySQL
PDF
Aula03 PHP - Estruturas Condicionais
Design patterns in PHP
Threads 03: Ciclo de vida, aplicações e boas práticas
Node.js e Express
Introdução a Banco de Dados (Parte 3)
Arquitetura Node com NestJS
Triggers no SQL Server
Curso MySQL #03 - Criando um Banco de Dados MySQL
Aula03 PHP - Estruturas Condicionais

Mais procurados (20)

PDF
Spring annotation
PDF
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
PDF
POO - 13 - Arrays em Java
PDF
Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...
PDF
Aula 02 - Introdução ao PHP
PPTX
DER - Diagrama de Entidade e Relacionamentos
PPT
JDBC
PDF
Threads 02: Acesso exclusivo e comunicação entre threads
PDF
Cross-domain requests with CORS
PPT
Jsp/Servlet
PPTX
Stored Procedures and Triggers
PPTX
My sql apresentação
DOC
Cajero en C++
PPSX
Spring - Part 1 - IoC, Di and Beans
PDF
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
PPT
Class 7 - PHP Object Oriented Programming
PPTX
Prática de laboratório utilizando views, stored procedures e triggers
PDF
Introduction To CodeIgniter
PPTX
Apresentação Clean Code
PPT
Resource Bundle
Spring annotation
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
POO - 13 - Arrays em Java
Working with Deeply Nested Documents in Apache Solr: Presented by Anshum Gupt...
Aula 02 - Introdução ao PHP
DER - Diagrama de Entidade e Relacionamentos
JDBC
Threads 02: Acesso exclusivo e comunicação entre threads
Cross-domain requests with CORS
Jsp/Servlet
Stored Procedures and Triggers
My sql apresentação
Cajero en C++
Spring - Part 1 - IoC, Di and Beans
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Class 7 - PHP Object Oriented Programming
Prática de laboratório utilizando views, stored procedures e triggers
Introduction To CodeIgniter
Apresentação Clean Code
Resource Bundle
Anúncio

Destaque (6)

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

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

PDF
Fundamentos de JDBC
PPTX
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
PPTX
Windows Azure 5/8 - Recursos adicionais do Windows Azure
PDF
Apostila aed
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPT
ORM - TDC Porto Alegre 2014 Trilha .NET
PDF
Como conectar programas em linguagem java a bases de dados
PDF
TOPICOS DE BANCO DE DADOS II - INSTITUTO CIENCIA E TECNOLOGIA
PPTX
Programação Concorrente - Aula 05
PPTX
Apresentação interbase (atualização 2)
PPTX
Express2012simples 130312140529-phpapp01
PDF
Fundamentos de JDBC
PDF
Fundamentos de JDBC
PDF
Jdbc, JAVA DATABASE CONNECTIVITY
ODP
Stored procedure
PDF
02 - Fundamentos de Servlets
KEY
Python 04
PPTX
Ado.net.exmplos.praticos
ODP
Java 16 Jdbc
Fundamentos de JDBC
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Windows Azure 5/8 - Recursos adicionais do Windows Azure
Apostila aed
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
ORM - TDC Porto Alegre 2014 Trilha .NET
Como conectar programas em linguagem java a bases de dados
TOPICOS DE BANCO DE DADOS II - INSTITUTO CIENCIA E TECNOLOGIA
Programação Concorrente - Aula 05
Apresentação interbase (atualização 2)
Express2012simples 130312140529-phpapp01
Fundamentos de JDBC
Fundamentos de JDBC
Jdbc, JAVA DATABASE CONNECTIVITY
Stored procedure
02 - Fundamentos de Servlets
Python 04
Ado.net.exmplos.praticos
Java 16 Jdbc

Último (7)

PPTX
Curso de Windows 11 resumido na prática.pptx
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PPTX
Mapeamento de Objeto para Tabela Relacional
PDF
apresentacao introducao computacao ead.pdf
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
Evolução em código: algoritmos genéticos com PHP
Curso de Windows 11 resumido na prática.pptx
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Mapeamento de Objeto para Tabela Relacional
apresentacao introducao computacao ead.pdf
Dos requisitos ao código: como criar código rastreável em PHP
Evolução em código: algoritmos genéticos com PHP

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