Download - Stored Procedure com ASP.pdf
7/23/2019 Stored Procedure com ASP.pdf
http://slidepdf.com/reader/full/stored-procedure-com-asppdf 1/6
Stored Procedure com ASP.NET C#07/02/2012 | 07h06min
por Cesar Cassiano Schimanco
Já avaliou este artigo?Aa!ia"o $%7/ & ' 1( otos.
inShare
)epois de *rios +uestionamentos so,re como criar e como utilizar stored procedures
no C#%
reso!i criar este arti-o.
utra per-unta% qual a diferença entre executar uma query no C# e usar stored
procedure?
om% eu particu!armente preiro usar as stored procedures apenas para aer coisas maiscomp!eas% a,aio ou citar a!-uns dos ,ene3cios das stored procedures.
• c4di-o ica todo centra!iado no S5.
• Stored procedures so pr'compi!adas% isso norma!mente as torna mais r*pidas na
eecu"o. Pois no C#% a cada chamada a +uer8 compi!ada noamente.
• 5uando estier usando um ,anco de dados remoto% menos dados sero eniados%
apenas o nome e os par9metros.
:esumo; Em termos de desempenho% usar stored procedures pode no aer nenhumadieren"a% e se ier% e!as podem ser impercept3eis. A -rande anta-em centra!iar todas
as consu!tas e ter um pro<eto mais !impo. Sem contar +ue a +uer8 ai icar co!orida e ai ter
a a<uda do inte!!isense para auto comp!etar...
=amos iniciar criando uma stored procedure e depois ou mostrar como a!terar e!a.
Para quem usa o SQ Server !anagement Studio em portugu"s
Criar uma stored procedure Editar uma stored procedure
7/23/2019 Stored Procedure com ASP.pdf
http://slidepdf.com/reader/full/stored-procedure-com-asppdf 2/6
Para quem usa o SQ Server !anagement Studio em ingl"s
Criar uma stored procedure Editar uma stored procedure
$xemplo de como criar uma stored procedure
-- ================================================
--Criar nova PROCEDURE
CREATE PROCEDURE spInsertUser
-- Adicionar os parâmetros da stored procedure
-- Nome e tipo do parâmetro.
7/23/2019 Stored Procedure com ASP.pdf
http://slidepdf.com/reader/full/stored-procedure-com-asppdf 3/6
@userName NVARCHAR(400),
@userEmail NVARCHAR(400)
AS
BEGIN
--variável para o numero de usuários cadastrados
DECLARE @count AS INT;
--Setando o número de usuários a variável @count
SET @count = (SELECT COUNT(*) FROM tblUsers);
--Verificar o número de usuários cadastrados
IF @count < 5
BEGIN
INSERT INTO tblUsers
(userName, userEmail, userPhone)
VALUES
(@userName,@userEmail,@userPhone)
END
END
$xemplo de como editar%modificar uma stored procedure
-- ================================================
--ALTERAR PROCEDURE
ALTER PROCEDURE [dbo].[spInsertUser]
-- Adicionar os parâmetros da stored procedure
-- Nome e tipo do parâmetro.
@userName NVARCHAR(400),
@userEmail NVARCHAR(400),
@userPhone NVARCHAR(15)
AS
BEGIN
--variável para o numero de usuários cadastrados
DECLARE @count AS INT;
--Setando o número de usuários a variável @count
SET @count = (SELECT COUNT(*) FROM tblUsers);
--Verificar o número de usuários cadastrados
IF @count < 5
BEGIN
INSERT INTO tblUsers
(userName, userEmail, userPhone)
VALUES
7/23/2019 Stored Procedure com ASP.pdf
http://slidepdf.com/reader/full/stored-procedure-com-asppdf 4/6
(@userName,@userEmail,@userPhone)
END
END
eemp!o acima de uma stored procedure +ue ai eriicar se <* eistem & usu*rioscadastrados. Se tier retorna 0% se no tier% cadastra e retorna 1.
Como ica no C#
$xemplo & >Eemp!o simp!es de como eecutar uma Stored procedure no C# para aer um
?NSE:T@
using (SqlConnection conn = new SqlConnection(
"server=.\\SQLEXPRESS;Database=dbTeste;User
ID=user;Password=password;Trusted_Connection=False;" ))
{
//Criando o SqlCommand
SqlCommand cmd = new SqlCommand();
//Setando a conexão para o SqlCommand
cmd.Connection = conn;
//Nome da stored procedure
cmd.CommandText = "spInsertUser";
//Definindo o tipo de comando como StoredProcedure
cmd.CommandType = System.Data.CommandType.StoredProcedure;
//Adicionar os parâmetros
cmd.Parameters.AddWithValue("@userName", "Cesar Cassiano");
cmd.Parameters.AddWithValue("@userEmail", "[email protected]");
cmd.Parameters.AddWithValue("userPhone", "00 0000 0000");
//Abrir a conexão
conn.Open();
//Executar a stored procedure
int intReturn = (int)cmd.ExecuteNonQuery();
//Verifica se executou o INSERT
if (intReturn != -1)
Response.Write("Usuário cadastrado.");
else
Response.Write("Limite máximo de usuários atingido.");
//Fechar a conexão
conn.Close();
}
7/23/2019 Stored Procedure com ASP.pdf
http://slidepdf.com/reader/full/stored-procedure-com-asppdf 5/6
$xemplo ' >Eemp!o simp!es de como eecutar uma Stored procedure no C# para retornar
dados aendo um SEECT com ?@
Stored procedure
CREATE PROCEDURE spSelectUser
@userName NVARCHAR(400),
@userEmail NVARCHAR(400),
@userPhone NVARCHAR(15)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql AS NVARCHAR(4000);
--Montando a query, verificando se o usuário está ativo
SET @sql = 'SELECT * FROM tblUsers WHERE userActive = 1 '
--Verificar se o parâmetro @userName é null ou ''
--caso for, ele não será adicionado a query.
IF (@userName <> null OR @userName <> '')
SET @sql = @sql + ' AND userName LIKE ''%' + @userName
+ '%'''
--Verificar se o parâmetro @userEmail é null ou ''
IF (@userEmail <> null OR @userEmail <> '')
SET @sql = @sql + ' AND userEmail LIKE ''%' +
@userEmail + '%'''
--Verificar se o parâmetro @userPhone é null ou ''
IF (@userPhone <> null OR @userPhone <> '')
SET @sql = @sql + ' AND userPhone = ' + @userEmail
--Executa a query
EXECUTE(@sql)
END
GO
C#
using (SqlConnection conn = new SqlConnection(
"server=.\\SQLEXPRESS;Database=dbTeste;User
ID=user;Password=password;Trusted_Connection=False;" ))
{
7/23/2019 Stored Procedure com ASP.pdf
http://slidepdf.com/reader/full/stored-procedure-com-asppdf 6/6
//Criando o SqlCommand
SqlCommand cmd = new SqlCommand();
//Setando a conexão para o SqlCommand
cmd.Connection = conn;
//Nome da stored procedure
cmd.CommandText = "spSelectUser";
//Definindo o tipo de comando como StoredProcedure
cmd.CommandType = System.Data.CommandType.StoredProcedure;
//Adicionar os parâmetros
cmd.Parameters.AddWithValue("userName", "Cassiano");
//Enviando @userEmail = NULL
cmd.Parameters.AddWithValue("userEmail", DBNull.Value);
//Enviando @userPhone = ''
cmd.Parameters.AddWithValue("userPhone", "");
//Abrir a conexão
conn.Open();
//CommandBehavior vai fechar a conexão após usar o DataReader
SqlDataReader dr =
cmd.ExecuteReader(CommandBehavior.CloseConnection);
//Lendo o DataReader
while (dr.Read())
{
//Imprimir os dados do DataReader
Response.Write(dr["userName"]);
Response.Write(dr["userEmail"]);
}
}