Estamos chegando ao final do artigo. Nesta parte vamos iniciar nosso projeto de teste contruindo um pequeno Banco de Dados.
Agora vamos ver na prática como
utilizar a nossa classe DAL genérica. Construiremos um pequeno banco de dados
no SqlServer 2005 Express com algumas Stored Procedures e apenas uma tabela.
Contruiremos também um projeto do tipo Console Application com C# no Visual
Studio.
Nosso BD será composto por 1 tabela:

Ilustração 11
– Tabela Produto a ser criada
Para maior agilidade vamos deixar
aqui o script para a criação do banco e desta tabela:
CREATE DATABASE [TESTE];
USE [TESTE]
GO
/****** Object: Table [dbo].[PRODUTO] Script Date: 04/26/2011 16:22:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[PRODUTO](
[prod_id]
[int] IDENTITY(1,1) NOT NULL,
[prod_nome]
[varchar](50) COLLATE Latin1_General_CI_AS NULL,
[prod_url]
[varchar](50) COLLATE Latin1_General_CI_AS NULL,
[prod_desc]
[varchar](100) COLLATE Latin1_General_CI_AS NULL,
[prod_preco]
[decimal](8, 2) NULL,
[prod_img]
[varchar](250) COLLATE Latin1_General_CI_AS NULL,
[prod_img_byte]
[image] NULL,
CONSTRAINT [PK_PRODUTO] PRIMARY
KEY CLUSTERED
(
[prod_id] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON
[PRIMARY]
GO
SET ANSI_PADDING OFF
Com nosso BD criado vamos Criar as
SPs. Para exemplo vamos utilizar 5 SPs. Abaixo segue uma tabela com os nomes e
funções de cada procedure.
|
Nome
|
Função
|
|
spDELProd_D
|
Exclusão
|
|
spINSProd_I
|
Inserção
|
|
spSELProd_S
|
Seleção
sem filtro
|
|
spSELProd_SF
|
Seleção com filtro
|
|
spUPDProd_U
|
Alteração
|
Seguem os scripts:
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spDELProd_D]
(
@pProdId int
)
AS
DELETE dbo.Produto WHERE
prod_id = @pProdId
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spINSProd_I]
(
@outProdId int output,
@pProdNome varchar(50),
@pProdUrl
varchar(50),
@pProdDesc varchar(50),
@pProdPreco varchar(20),
@pProdImg
varchar(250),
@pProdImgByte
image
)
AS
INSERT INTO dbo.Produto
(
prod_nome,
prod_url,
prod_desc,
prod_preco,
prod_img,
prod_img_byte
)
VALUES
(
@pProdNome,
@pProdUrl,
@pProdDesc,
convert(decimal(8,2),@pProdPreco),
@pProdImg,
@pProdImgByte
);
Select @outProdId = MAX(prod_id) FROM dbo.Produto;
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spSELProd_S]
AS
SELECT
* FROM dbo.Produto
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spSELProd_SF]
(
@pProdId
int
)
AS
SELECT * FROM dbo.Produto where prod_id =
@pProdId
USE [TESTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spUPDProd_U]
(
@pProdId int,
@pProdNome
varchar(50),
@pProdUrl
varchar(50),
@pProdDesc varchar(50),
@pProdPreco varchar(20),
@pProdImg varchar(250),
@pProdImgByte
image
)
AS
UPDATE dbo.Produto SET
prod_nome
= @pProdNome,
prod_url
= @pProdUrl,
prod_desc
= @pProdDesc,
prod_preco
= convert(decimal(8,2),@pProdPreco),
prod_img
= @pProdImg,
prod_img_byte
= @pProdImgByte
WHERE prod_id = @pProdId
Pronto,
nosso BD está completo agora para o nosso projeto de exemplo. No proximo artigo contruiremos um projeto no Visual Studio para testarmos nossa ferramenta.