• Telefones de Contato
  • 0-xx-(51) 3717-3796
  • 0-xx-(51) 9627-3434
Comprar Cursos e Video-Aulas Cursos Online com Certificado Comprar Livros Tutoriais e Artigos Foruns de Discussao
 Você está aqui: Principal > Artigos > Windows
  :: Autor: Alfredo Lotar   :: Site:     Como Programar com ASP.NET e C#
  :: Data:  11/10/2007   :: e-mail: alfredo.programador@bol.com.br
CURSOS ONLINE COM CERTIFICADO
Corel Draw X4
Criação de Sites
Dominando o Linux
Form. de Professores Líderes
Fundam. de Redes TCP/IP
Gerência de Projetos
Gerência Financeira
Hardware
MS Project 2007
Photoshop
Profission. de Flash
Profission. de Informática
Profission. de Vendas
Profission. de Redes
Programação para Web
Programação VBA no Excel
Projeto de Redes LAN
Redes Wireless
SQL Server 2005
Técnico de Redes WAN
Windows Server 2003
LIVROS
Júlio Battisti
Excel
Word
Windows e Linux
Redes
Programação
Certificações Microsoft e...
Banco de Dados
Webdesign
Gráficos e CorelDraw
Segurança
Aplicativos
Carreira e Sucesso Profis...
Cultura e Interesse Geral
Administração e Negócios
Office 2007
Hardware e Montagem
AutoCAD
Finanças e Investimentos
VÍDEO-AULAS
Access
Excel
Word
PowerPoint
Windows
Programação
Concursos Públicos
Banco de Dados
Webdesign
Internet
CAD
Vídeo e Áudio
Programas Gráficos
Administração e Negócios
CURSOS/E-BOOKS
Access
Excel
Word
PowerPoint
Windows
Redes e TCP/IP
Programação
Certificações Microsoft
Concursos Públicos
Banco de Dados
Webdesign
Internet
BrOffice
Linux
CAD
Vìdeo
Formação Pessoal e Profis...
Área Gráfica
Literatura e Outros
Administração e Negócios
Vídeo-Aulas de Word
OFERTAS ESPECIAIS
ASP.NET 3.5 Para Leigos
Desenvolvendo para web ...
Dossiê Hacker
Joomla - Guia do Operad...
MS Project 2007 e Proje...
Terminais sem Hard Disk
Universidade Hacker - 6...
MAIS VENDIDOS
ASP.NET 3.5 Para Leigos
Desenvolvendo para web ...
Joomla - Guia do Operad...
MS Project 2007 e Proje...
Terminais sem Hard Disk
Universidade Hacker - 6...

Como exibir informações com múltiplas instruções SQL 

Ao utilizar múltiplas instruções SQL economizamos os recursos compartilhados da rede e servidor, como largura de banda, memória, CPU, pois reduzimos o número de acessos ao servidor web.

Neste artigo, veremos como retornar registros com uma stored procedure com duas instruções SQL. Inicialmente, declaramos a string de conexão com o banco de dados

string strConexao = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=Northwind;";

e a stored procedure usada no exemplo:

string sSql = "GetTotalAndProdutos";

Se preferir utilize instruções SQL separadas por ponto-e-vírgula:

string sSql = " SELECT Count(*) AS Total FROM Products; SELECT ProductName, UnitPrice FROM Products"; 

Com a instrução using criamos uma nova instância da classe SqlConnection e passamos a string de conexão:

using (SqlConnection conn = new SqlConnection(strConexao))

{

Criamos e definimos um objeto SqlDataReader como null.

SqlDataReader r = null;

Em seguida, criamos uma nova instância da classe SqlCommand e passamos ao construtor o objeto SqlConnection e a string com o nome da stored procedure.

SqlCommand cmd = new SqlCommand(sSql, conn);

Definimos a propriedade CommandType como StoredProcedure.

cmd.CommandType = CommandType.StoredProcedure;

Ao usar instruções SQL defina a propriedade CommandType como Text:

cmd.CommandType = CommandType.Text;

Dentro dos blocos try, catch, finally, respectivamente, abrimos e exibimos os dados, manipulamos as exceções que podem ocorrer e fechamos a conexão com o banco de dados.

try

{

      conn.Open();

Definimos o objeto SqlDataReader:

r = cmd.ExecuteReader(CommandBehavior.CloseConnection);

Retornamos o índice do campo "total":

int t = r.GetOrdinal("total");

Exibimos a string "Total de registros:".

Response.Write("<b><span style=\"text-decoration: underline\">Total de registros:</span></b> ");

Iniciamos a leitura dos dados

r.Read();

e exibimos o total de registros retornados:

Response.Write(r.GetInt32(t) + "<br/>");

Usamos o método NextResult para exibir os registros do próximo conjunto de registros.

r.NextResult();

Verificamos se há registros para exibir:

if (r.HasRows)

Neste caso especifico, podemos usar também:

if (r.GetInt32(t) > 0)

Em seguida, extraímos o índice do campo ProductName e do campo UnitPrice.

int produto = r.GetOrdinal("ProductName");

int valor = r.GetOrdinal("UnitPrice");

Criamos a tabela onde exibiremos os dados.

Response.Write("<table><tr><td style=\"width: 150px\"><b>Produto</b></td><td style=\"width: 100px\"><b>Valor unitário</b></td></tr>");

Percorremos todos os registros do segundo conjunto de registros.

while (r.Read())

{

Exibimos o nome do produto com o método GetString

Response.Write("<tr><td style=\"width: 150px\">" + r.GetString(produto) + "</td>");

e o valor unitário de cada produto com o método GetDecimal:

Response.Write("<td style=\"width: 100px\">" + string.Format(ci,"{0:c}", r.GetDecimal(valor)) + "</td></tr>");

O método Format da classe String formata a saída como um valor monetário

string.Format(ci,"{0:c}", r.GetDecimal(valor))

e define a cultura como pt-BR - Português Brasil. Desta forma, a saída será sempre em reais, independente do idioma usado pelo computador do usuário.

CultureInfo ci = new CultureInfo("pt-BR");

Ao finalizar o exemplo, exibimos a tag de fechamento da tabela

Response.Write("</table>");

exibimos o bloco catch

catch (SqlException)

{

      Response.Write("Erro SQL.");

}

e o bloco finally, onde encerramos a conexão com o banco de dados.

finally

{

      if (!r.IsClosed) r.Close();

}

A seguir, temos os arquivos e  códigos que compõe este exemplo.

//Arquivo de exemplo: Default.aspx.cs

using System;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Data.SqlClient;

using System.Globalization;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        string strConexao = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=Northwind;";

        string sSql = "GetTotalAndProdutos";

        using (SqlConnection conn = new SqlConnection(strConexao))

        {

            SqlDataReader r = null;

            SqlCommand cmd = new SqlCommand(sSql, conn);

            cmd.CommandType = CommandType.Text;

 

            try

            {

                conn.Open();

                r = cmd.ExecuteReader(CommandBehavior.CloseConnection);

                int t = r.GetOrdinal("total");

                Response.Write("<b><span style=\"text-decoration: underline\">Total de registros:</span></b> ");

                r.Read();

                Response.Write(r.GetInt32(t) + "<br/>");

 

                r.NextResult();

                if (r.HasRows)

                {

                    int produto = r.GetOrdinal("ProductName");

                    int valor = r.GetOrdinal("UnitPrice");

                    Response.Write("<table><tr><td style=\"width: 150px\"><b>Produto</b></td><td style=\"width: 100px\"><b>Valor unitário</b></td></tr>");

 

                    CultureInfo ci = new CultureInfo("pt-BR");

                    while (r.Read())

                    {

                        Response.Write("<tr><td style=\"width: 150px\">" + r.GetString(produto) + "</td>");

                        Response.Write("<td style=\"width: 100px\">" + string.Format(ci,"{0:c}", r.GetDecimal(valor)) + "</td></tr>");

                    }

                    Response.Write("</table>");

                }

            }

            catch (SqlException)

            {

                Response.Write("Erro SQL.");

            }           

            finally

            {

                if (!r.IsClosed) r.Close();

            }

        }

    }

}

Temos o arquivo Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<html>

<head runat="server">

    <title>Exemplo com o método NextResult</title>

</head>

<body>

    <form id="form1" runat="server">

        <div>

        </div>

    </form>

</body>

</html>

 e a stored procedure GetTotalAndProdutos usada no exemplo:

CREATE PROCEDURE GetTotalAndProdutos

AS

SET NOCOUNT ON

SELECT Count(*) AS Total FROM Products

SELECT     ProductName, UnitPrice FROM Products

GO

Sobre o autor:

Alfredo Lotar é consultor, programador, escritor. Desenvolve aplicações com ASP.NET, JavaScript, XML, C#, Visual Basic e SQL Server. É autor do livro XML para Programadores ASP, da editora Axcel Books, e dos livros ASP.NET com C# – Curso Prático, e Como programar com ASP.NET e C#, ambos publicados pela Novatec Editora. Atualmente, passa a maior parte do tempo desenvolvendo aplicações, escrevendo livros ou artigos, testando códigos e analisando falhas de segurança em web sites de clientes. O autor pode ser contactado pelo e-mail: alfredo.programador@bol.com.br.




CURSOS ONLINE COM CERTIFICADO E SUPORTE
Gerência de Projetos SQL Server 2005 Gerência Financeira Windows Server 2003
MS Project 2007 Photoshop Projeto e Interconexão de Redes LAN Técnico Profissionalizante de Informática
Profissionalizante de Flash      
CURSO EM FORMATO DE VÍDEO-AULA
EXEMPLOS PRÁTICOS PASSO A PASSO COM SOM E IMAGEM
Clique no curso para informações detalhadas
Curso Duração Informações
ACCESS
Vídeo-Aula - Access 2007 - Curso Básico 2h01m Clique aqui
Vídeo-aula - Access 2007 - Tudo Sobre Consultas 2h30m Clique aqui
Vídeo-Aula - Curso Avançado de Access 2003 2h48m Clique aqui
Vídeo-Aula - Curso Básico de Access 2003 2h49m Clique aqui
EXCEL
Vídeo-aula - Criando uma Agenda no Excel 40m Clique aqui
Vídeo-aula - Curso de Macros e Programação VBA no Excel - Avançado 11h27m Clique aqui
Vídeo-aula - Curso de Macros e Programação VBA no Excel - Básico e Int... 13h02m Clique aqui
Vídeo-aula - Excel 2003 - Curso Básico 3h03m Clique aqui
Vídeo-Aula - Excel 2007 - Curso Avançado 2h30m Clique aqui
Vídeo-Aula - Excel 2007 - Curso Básico 2h35m Clique aqui
Vídeo-Aula - Tabelas Dinâmicas Avançadas no Excel 2003 2h Clique aqui
Vídeo-aula - Tudo Sobre Funções Matriciais no Excel 2h30m Clique aqui
Vídeo-Aula - Tudo Sobre Gráficos no Excel 9h Clique aqui
Vídeo-aula interativa: Tudo Sobre Tabelas Dinâmicas no Excel 2003 2h30m Clique aqui
WORD
Vídeo-Aula - Curso Básico de Word 2003 2h14m Clique aqui
Vídeo-aula - Word 2003 Avançado 1h34m Clique aqui
Vídeo-aula - Word 2003 Básico 2h14m Clique aqui
Vídeo-Aula - Word 2007 - Curso Básico 2h23m Clique aqui
POWERPOINT
Vídeo-Aula - Curso Básico de PowerPoint 2003 2h22m Clique aqui
WINDOWS
Vídeo-Aula - Curso Básico de Windows XP 2h36m Clique aqui
Vídeo-Aula - Windows XP - Formatação e Instalação 3h47m Clique aqui
Vídeo-Aula - Windows XP Básico + Intermediário + Dicas Práticas 8h Clique aqui
PROGRAMAÇÃO
Vídeo-Aula - CALCULADORA HP 12C - Curso Prático em 80 Lições 02h30m Clique aqui
Vídeo-Aula - CALCULADORAS HP 50G - 49G/G+ - 48 GII -- Clique aqui
Vídeo-Aula - Curso Completo de Lógica de Programação 22h15m Clique aqui
Vídeo-Aula - Lógica de Programação com VB.NET 14h Clique aqui
CONCURSOS PÚBLICOS
Vídeo-aula - Excel Para Concursos Públicos - Simulados e Provas Coment... 2h Clique aqui
Vídeo-Aula - Matemática Básica - Módulo I 22h Clique aqui
Vídeo-aula - Matemática Financeira - Teoria e Prática 9h10m Clique aqui
Vídeo-Aula - Raciocínio Lógico - Curso Completo e Prático 12h Clique aqui
Vídeo-aula - Série Concursos: Inglês ESAF - Simulados e Provas Comenta... 2h Clique aqui
BANCO DE DADOS
Vídeo-Aula - Dominando o ORACLE - Curso Prático 12h Clique aqui
Vídeo-Aula - MySQL - Curso Completo e Prático 11h30m Clique aqui
Vídeo-aula - SQL Server 2005 - Reporting Services 2h30m Clique aqui
WEBDESIGN
Vídeo-Aula - Criação de Sites - Curso Básico 2h53m Clique aqui
Vídeo-Aula - Criando Blogs Profissionais - Curso Completo 45m Clique aqui
Vídeo-Aula - Criando Sites Dinâmicos Avançados com DreamWeaver CS3, PH... 4h54m Clique aqui
Vídeo-Aula - Criando Sites Dinâmicos com DreamWeaver CS3, PHP e MySQL 4h05m Clique aqui
Vídeo-Aula - Criando uma Loja Virtual com PHP e MySQL - Curso Completo 19h Clique aqui
Vídeo-Aula - Curso Completo de PHP + HTML + CSS 27h35m Clique aqui
Vídeo-Aula - DreamWeaver CS4 - Curso Prático 1h53m Clique aqui
Vídeo-aula - Flash CS3 - Básico e Prático 4h45m Clique aqui
Vídeo-Aula - Flash MX - Curso Básico 2h26m Clique aqui
Vídeo-Aula - HTML - Curso Prático 2h40m Clique aqui
Vídeo-Aula - Tableless - Crie Sites 100% nos Padrões Web 4h10m Clique aqui
INTERNET
DVD: Hardware - Curso Básico 58m Clique aqui
Vídeo-Aula - Curso de Microinformática Prática 4h35m Clique aqui
Vídeo-aula - Curso Prático de Internet 40m Clique aqui
Vídeo-aula - Curso Prático de Outlook Express 55m Clique aqui
CAD
Vídeo-Aula - Curso de Autocad 2D 4h Clique aqui
Vídeo-Aula - Curso de Autocad 3D 3h45m Clique aqui
VÍDEO E ÁUDIO
DVD: Conversão de Formatos Digitais: Áudio e Vídeo 1h26m Clique aqui
Vídeo-Aula - Como Criar Vídeo-Aulas - Curso Prático 1h04m Clique aqui
Vídeo-Aula - Curso de Teoria Musical 1h Clique aqui
PROGRAMAS GRÁFICOS
Vídeo-Aula -  Flash CS4 - Curso Prático 2h19m Clique aqui
Vídeo-Aula - Curso de CorelDraw X4 - Módulo I 3h Clique aqui
Vídeo-Aula - Curso Profissional Photoshop 4h20m Clique aqui
Vídeo-Aula - Fireworks CS4 - Curso Prático 1h35m Clique aqui
Vídeo-Aula - Photoshop CS4 - Curso Prático 4h24m Clique aqui
ADMINISTRAÇÃO E NEGÓCIOS
DVD - Curso de Oratória - Falando em Público sem Medo 2h36m Clique aqui
LIVROS CAMPEÕES DE VENDA NO SITE
Dossiê Hacker
Universidade Project
Loja de Livros

Uma verdadeira especialização em Office, com 6208 páginas de conteúdo que vai do básico ao avançado, detalhadamente explicado e exemplificado. Desde os recursos básicos, passando pelos recursos avançados, pela criação de macros e pela automação de tarefas usando programação VBA.

Apenas: R$ 195,00 (valor do frete já incluído)

CLIQUE AQUI PARA SABER COMO COMPRAR ESTE CD