stored procedure com asp.pdf

6
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 mais comp!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 nenhuma dieren"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

Upload: carlos-carlos

Post on 18-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Stored Procedure com ASP.pdf

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. 

Page 3: Stored Procedure com ASP.pdf

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 

Page 4: Stored Procedure com ASP.pdf

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();

}

Page 5: Stored Procedure com ASP.pdf

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;" ))

{

Page 6: Stored Procedure com ASP.pdf

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"]);

}

}