Crie um novo projeto do tipo Web Site no Visual Studio (File > New > Web Site) em linguagem C#.
Clique na aba Design da página Default.aspx do projeto e altere o fonte HTML conforme a listagem abaixo.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body style="font-family: Trebuchet MS;">
<form id="form1" runat="server">
<div>
<b>Listagem de Produtos</b><br />
<asp:ListBox ID="lstProduto" runat="server" Height="169px" Width="284px"></asp:ListBox><br /><br />
<b>Listagem de Categorias</b><br />
<asp:ListBox ID="lstCategoria" runat="server" Height="169px" Width="284px"></asp:ListBox><br />
</div>
</form>
</body>
</html>
Acesse o code-behind da página pressionando a tecla F7 e escreva as linhas de código abaixo.
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!Page.IsPostBack)
this.ExecutarMultiplaConsulta();
}
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "erro",
string.Format("alert('{0}');", ex.Message), true);
}
}
private void ExecutarMultiplaConsulta()
{
using (SqlConnection con =
new SqlConnection(ConfigurationManager.ConnectionStrings["connStringSqlServer"].ToString()))
{
using (SqlCommand cmd =
new SqlCommand("SELECT * FROM Products; SELECT * FROM Categories", con))
{
cmd.CommandType = System.Data.CommandType.Text;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
//Preencher o primeiro ListBox com os produtos
while (dr.Read())
{
lstProduto.Items.Add(dr["ProductName"].ToString());
}
//Obter o resultado da próxima query
dr.NextResult();
//Preencher o segundo ListBox com as categorias
while (dr.Read())
{
lstCategoria.Items.Add(dr["CategoryName"].ToString());
}
}
}
}
<connectionStrings>
<add name="connStringSqlServer" connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=Northwind; Trusted_Connection=True;"providerName="System.Data.SqlClient"/>
</connectionStrings>
Perceba que alimentamos o objeto SqlCommand com duas querys separadas por “;” ponto-e-vírgula. O outro detalhe importante, é que após o preenchimento doListBox lstProduto, chamamos o método NextResult do SqlDataReader para que o mesmo selecione o resultado da segunda query. Testando a aplicação, teremos um resultado conforme a imagem a seguir.
Muito bom. Excelente artigo!
ResponderExcluir