NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
ASP.NET - CURSO COMPLETO Autor: Júlio Battisti |
|||
---|---|---|---|
Lição 051 - Capítulo 06 - O segundo exemplo - conectando com um banco de dados | |||
O nosso segundo exemplo é um pouco mais complexo do que o exemplo anterior. Vamos apresentar uma página ASP.NET que faz conexão com um banco de dados do SQL Server e exibe todos os registros de uma determinada tabela. A primeira diferença que você irá notar em relação ao ASP 3.0 é que não temos mais o objeto Recordset, o qual é bastante utilizando com o ASP 3.0, para conexões de páginas com bancos de dados. A partir do Capítulo 10 estaremos tratando em detalhes da conexão de páginas ASP.NET com banco de dados. Na Listagem 6.3 temos o código para a criação da página proposta. Listagem 6.3 – O segundo exemplo: conectando com o banco de dados pubs – chap6ex2.aspx. <%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<script language="C#" runat="server">
protected void Page_Load(Object Src, EventArgs E )
{ // Crio uma conexão com o banco de dados pubs localizado no servidor local.
// Vamos acessar a instância SERVIDOR\NETSDK.
SqlConnection myConnection = new SqlConnection("server=SERVIDOR\\NETSDK;" + " uid=sa;pwd=;database=pubs");
// Conectamos com o banco de dados utilizando um comando SQL, // o qual retorna todos os dados da tabela "Authors", do banco de
// dados pubs. SqlDataAdapter myCommand = new SqlDataAdapter("SELECT " +
" * FROM Authors", myConnection);
// Criamos e preenchemos um objeto DataSet. // Observe que não temos mais o objeto Recordset,
// como era de praxe com o ASP 3.0.
DataSet ds = new DataSet(); myCommand.Fill(ds);
// Conectamos um controle DataGrid com o DataSet criado anteriormente. // MyDataGrid é o id (nome) de um controle do tipo
// DataGrid que está na seção de apresentação da página.
DataView source = new DataView(ds.Tables[0]); MyDataGrid.DataSource = source ;
MyDataGrid.DataBind();
}
</script>
<body>
<%-- Exibe as informações do DataGrid no corpo da página. --%>
<h3><font face="Verdana">Registros da tabela Authors!</font></h3>
<%-- Os registros da tabela Authors são exibidos no DataGrid. --%>
<ASP:DataGrid id="MyDataGrid" runat="server" Width="700"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
MaintainState="false"
/>
</body>
</html>
Digite o código da Listagem 6.3 e salve o mesmo em um arquivo chamado chap6ex2.aspx, na pasta chap6, dentro da pasta wwwroot, conforme descrito anteriormente. Para acessar esta página utilize o seguinte endereço: http://localhost/chap6/chap6ex2.aspx
Ao carregarmos esta página no Internet Explorer obtemos o resultado indicado na Figura 6.7
Alguns comentários sobre o exemplo chap6ex2.aspx, sem entrar em maiores detalhes sobre o código do exemplo. Cadê o meu objeto Recordset? Nada de objetos do tipo Recordset. Com ASP.NET utilizamos ADO.NET para fazer a conexão com banco de dados. ADO.NET utiliza o objeto Dataset ao invés do objeto Recordset. Para a conexão com bancos de dados utilizamos uma série de classes do namespace System.Data, o qual faz parte do .NET Framework Class Library. Para ter acesso as classes de um determinado namespace, precisamos adicionar uma referência ao mesmo, no início da página ASP.NET, utilizando a diretiva Import, conforme indicado no trecho de código a seguir: <%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
Observe que estamos fazendo referência a dois namespaces: System.Data e System.Data.SqlCliente. Vamos tratar exaustivamente dos membros destes namespaces nos capítulos 10 e 11. Conectando com o banco de dados. Na seção de código da página temos os comandos para conexão com o banco de dados pubs da instância SERVIDOR\NETSDK. Um detalhe importante é a maneira como informamos o nome da instância, conforme indicado pelo trecho de código a seguir: SqlConnection myConnection = new SqlConnection("server=SERVIDOR\\NETSDK;" +
" uid=sa;pwd=;database=pubs");
Observe que utilizamos duas barras invertidas ao invés de uma única barra. Isto é necessário porque a barra invertida é considerada um caractere de escape com significado especial para a linguagem C#. Quando ao invés do caractere de escape, queremos que o C# entenda o mesmo como um caractere normal, temos que precedê-lo de uma barra invertida. Na prática as duas barras invertidas são interpretadas, pelo C#, como uma única barra, o que produz o resultado desejado: SERVIDOR\NETSDK.
Neste exemplo utilizamos as seguintes classes do namespace System.Data.SqlClient:
Também utilizamos as seguintes classes do namespace System.Data:
Um controle poderoso para exibir os dados: Na seção de apresentação utilizamos o controle DataGrid para fazer a exibição dos registros da tabela Authors. Observe o quão poderoso é este controle. Simplesmente através da configuração da sua propriedade DataSource, na seção de código, definimos os registros a serem exibidos pelo controle. Esta definição é feita nas seguintes linhas de código: MyDataGrid.DataSource = source ;
MyDataGrid.DataBind(); Veja que não precisamos utilizar um laço While para percorrer todos os registros da tabela Authors, como tínhamos que fazer com o objeto RecordSet. O controle DataGrid faz parte dos chamados “Web Server Controls”. No Capítulo 8 aprenderemos a utilizar os diversos Web Server Controls disponíveis. Posso ter um comando que ultrapassa uma linha? A resposta é um sonoro "Sim". Diferente do ASP 3.0, em nossas páginas ASP.NET, os comandos da seção de código podem estar em mais do que uma linha, sem problemas. Inclusive na Listagem 6.3 temos comandos que ultrapassam uma linha e a página carrega sem maiores problemas, conforme exemplificado no trecho a seguir: SqlDataAdapter myCommand = new SqlDataAdapter("SELECT " +
" * FROM Authors", myConnection);
Isso é possível pois cada comando do C# é finalizado com um ponte-e-vírgula (;). O bom e velho SQL continua o mesmo? A resposta é outro sonoro "Sim". Você deve ter observado que utilizamos um comando SQL para retornar os dados da tabela authors. Utilizamos um comando SELECT, conforme indicado a seguir: SqlConnection myConnection = new SqlConnection("server=SERVIDOR\\NETSDK;" +
" uid=sa;pwd=;database=pubs");
Vamos alterar o comando SQL para introduzir uma condição. Queremos que sejam retornados somente os registros para os autores em que a cidade (city) é Oakland. Para isso basta que seja utilizada uma cláusula where para especificar a condição city=’Oakland’, conforme indicado a seguir: SqlDataAdapter myCommand = new SqlDataAdapter("SELECT " +
" * FROM Authors where city='Oakland'", myConnection);
Faça esta alteração na página chap6ex2.aspx e salve a nova versão da página na pasta chap6, com o nome de chap6ex3.aspx. Ao carregar esta nova versão, obteremos o resultado indicado na Figura 6.8.
|
|||
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2024 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI