<asp:AccessDataSource> ID="MeuNomeFonte" Runat = "servidor" DataFile="MeuNomeMDB.mdb" SelectCommand="SELECT MeuCampo1, MeuCampo2 FROM MinhaTabela"> </asp:AccessDataSource> |
<html> <cabeça> <título>TIO ch02-1 Exibir dados MDB</título> <cabeça> <corpo> <h3>ch02 TIO 2 Demonstração de conexão a uma fonte MDB </h3> <corpo> </html> |
<%@ idioma da página="VB" %> <html> <head><title>ch02 TIO 2 Exibir dados MDB</title></head> <corpo> <h3>ch02 TIO 2 Demonstração de conexão a uma fonte MDB </h3> <form runat="servidor"> <asp:accessdatasource id="NorthwindProductsAccDataSource" runat="servidor" selectcommand="Selecionar * Dos Produtos" arquivo de dados="~/App_Data/Northwind.mdb"> </asp:accessdatasource> <asp:gridview id="NorthwindProductsGridView" runat="servidor" datasourceid="NorthwindProductsAccDataSource"> </asp:gridview> </formulário></corpo></html> |
<asp:accessdatasource id="NorthwindProductsAccDataSource" runat="servidor" selectcommand="Selcet * De [Vendas por categoria]" Arquivo de dados="~/App_Data/Northwind.mdb"> </asp:accessdatasource> |
(14) Abra o navegador e visualize a página.
Exemplo de nota nº 2 - Conecte-se ao MDB e exiba dados com GridView
Você tem dois controles na página. O primeiro, AccessDataSource, realiza todo o trabalho de conexão com os objetos ADO.NET que se conectam ao mecanismo JET que interage com o arquivo MDB. O segundo é o GridView, que serve para obter dados e converter seu formato em formato HTML que pode ser exibido na página. Observe que é muito importante dar a cada controle um nome significativo (ID). Você deve então certificar-se de que o controle vinculado a dados (GridView) usa sua propriedade DataSourceID para fazer referência ao ID do AccessDataSource para usar o AccessDataSource como sua fonte de dados.
Exibir dados de uma consulta não é muito difícil no Access, você pode usar nomes de consulta em vez de nomes de tabela. Existem duas instruções aqui. Primeiro, se houver espaços no nome de uma tabela ou consulta, o nome inteiro deverá ser colocado entre colchetes. Segundo, consultas que exigem informações do usuário (por exemplo, “vendas em um determinado ano” exigem saber em que ano) envolvem técnicas que estão além do escopo deste livro.
Após concluir as etapas anteriores, você poderá ver os dados obtidos do controle AccessDataSource exibidos na página. Os capítulos posteriores abordarão o GridView em detalhes, mas este capítulo continuará a focar nos controles de fonte de dados.
Selecione variáveis em declarações
Ao criar uma fonte de dados no VWD, o assistente solicitará que você especifique as colunas que precisam ser exibidas ou que crie uma instrução SQL personalizada. No "Try It Away" anterior, você simplesmente selecionou algumas colunas. Instruções SQL mais complexas podem ser especificadas de diversas maneiras diferentes:
● Use caixas de diálogo interativas
● Insira instruções SQL personalizadas no assistente AccessDataSource (chamado pela tarefa de conveniência Configurar fonte de dados no controle)
● Insira extratos na grade de propriedades
● Insira instruções diretamente na marcação da visualização Fonte
A seleção de colunas no assistente Access DataSource é uma técnica preferida para consultas simples que retornam uma ou mais colunas de uma tabela separada porque reduz erros de tipografia e sintaxe (veja a Figura 2-3). Neste assistente, você pode selecionar o nome da tabela ou consulta na lista suspensa Nome. Você pode então selecionar as colunas necessárias na tabela ou consulta selecionando todas as colunas (*) ou qualquer grupo de colunas. Se você clicar no botão Ordenar por, poderá classificar por qualquer coluna na fonte de dados. Caso haja restrição na primeira coluna, será utilizado o campo selecionado em Then By. Ao selecionar opções no assistente, observe que a sintaxe SQL real do SelectCommand também é exibida em uma caixa de texto somente leitura.
Figura 2-3
Você pode usar o botão WHERE no assistente para criar uma instrução SQL com parâmetros. Esta parte será apresentada no Capítulo 9. Iremos ignorar esta seleção por enquanto, mas é importante que antes da implantação você use esses parâmetros que serão discutidos posteriormente neste livro. Em um site implantado, evite conectar diretamente a entrada do usuário às instruções SQL. Ignorar problemas de parâmetros exporá seu site a ataques de injeção de SQL. Essa técnica de ataque usa caracteres falsos da entrada do usuário para invalidar a instrução SQL original e depois a substitui por uma instrução destrutiva. Você pode usar coleções de parâmetros para enviar entradas do usuário para coleções de parâmetros ADO.NET, que podem usar a funcionalidade de coleções para reduzir problemas de injeção de SQL.
Embora o assistente Configurar fonte de dados tenha muitas opções para ajudar a criar instruções SQL rapidamente, às vezes você ainda precisa inserir (ou modificar) diretamente a instrução SQL no SelectCommand marcado. O assistente AccessDataSource permite essas operações. Na página do assistente para seleção de tabelas, consultas e colunas, você pode selecionar o botão de opção para "Especificar uma instrução SQL personalizada ou procedimento armazenado". Após selecionar esta opção na página do assistente, clique no botão Avançar para entrar em outra página onde você pode inserir instruções personalizadas diretamente na área de texto. Você também pode usar o Visual Studio QueryBuilder para criar visualmente instruções personalizadas, usando ferramentas muito semelhantes ao Access QueryBuilder.
Se não quiser usar o assistente, você poderá optar por inserir uma instrução SQL personalizada na grade de propriedades do controle AccessDataSource ou alternar para o modo de exibição Fonte e inserir a instrução na propriedade SelectCommand da marca de controle AccessDataSource.
Existem muitos livros sobre SQL (do mesmo tipo que este é Beginning SQL Programming , ISBN 1-861001-80-0), e este livro fornece uma breve introdução no apêndice. Se você planeja aprender a sintaxe SQL, pode começar aprendendo os comandos para retornar parte de um registro (TOP e DISTINCT), a sintaxe para renomear um campo (AS) e a técnica para retornar campos de duas tabelas relacionadas (JOIN). . Os exercícios a seguir explorarão algumas variáveis em instruções SQL.
Tentativa nº 3 - Alterando a instrução Select em AccessDataSource Neste exercício, você exibirá colunas e registros específicos da tabela Produtos do Northwind. Também será criada uma página para exibir os dados obtidos na consulta. Observe que neste exercício as regras de seleção já estão no código-fonte. Atualmente, não há entrada do usuário como opção.
(1) Crie um arquivo chamado ch02_TIO_3_AlternateSelect-Commands.aspx em C:WebsitesBegAspNet2Dbch02.
(2) Adicione um controle AccessDataSource com Northwind como ID e defina o MDB como App_DataNorthwind.mdb. Em uma série de caixas de diálogo, configure o comando Selecionar para recuperar todos os campos da tabela Produtos ("nome"=Produtos). Dê uma olhada na visualização Fonte e observe a instrução que você criou, conforme mostrado abaixo:
SELECIONE * DE Produtos |
<%@ idioma da página="VB" %> <html> <head runat="servidor"> <title>ch02 TIO 3 Alternate Select Conimands</title> </cabeça> <corpo> <h3>ch02 TIO 3 Seleção Alternativa Coinmands</h3> <form runat="servidor"> <asp:accessdatasource id="NorthwindAccDataSource" runat="servidor" selectcommand="SELECIONE * DOS Produtos" arquivo de dados=" ~/App_Data/Northwind.mdb" > </asp:accessdatasource> <asp:gridview id="GridViewl" runat="servidor" datasourceid="NorthwindAccDataSource"> </asp:gridview> </formulário> </corpo> </html> |
SELECIONE * DE [Produtos] ONDE (CategroyID=3) |
<asp:accessdatasource id="NorthwindAccDataSource" runat="servidor" selectcommand="SELECT * FROM [Produtos] WHERE (CategoryID = 3)" Arquivo de dados="~App_Data/Northwind.mdb"> </asp:accessdatasource> |
SELECIONE * DE Produtos ONDE ProductID = 12 SELECIONE * FROM Produtos WHERE ProductName = 'Molho de Cranberry Northwoods' SELECIONE * A PARTIR DE Produtos ONDE ProductID <11 SELECIONE * FROM Produtos WHERE ProductID <11 ORDER BY ProductName Crescente SELECIONE * A PARTIR DE Produtos ONDE IDFornecedor = 6 OU IDFornecedor = 8 SELECIONE * A PARTIR DE Produtos ONDE IDDoFornecedor = 24 E PreçoUnitário > 10 |
Variáveis na localização do arquivo MDB
Os arquivos MDB são armazenados em vários locais físicos no disco rígido: na mesma pasta da página da Web, em uma subpasta da página da Web ou em outras pastas da máquina, etc. No Visual Web Developer, esses arquivos podem ser navegados frequentemente no designer e o caminho correto para o arquivo MDB foi inserido. No entanto, se você planeja inserir seu próprio código, precisará seguir a sintaxe descrita nesta seção.
A propriedade DataFile do controle AccessDataSource contém um caminho de página que pode ser totalmente qualificado (por exemplo, começando com uma letra de unidade) ou especificado em relação ao local da página que contém o AccessDataSource. Os caminhos também podem ser relativos ao aplicativo, ou seja, usar a sintaxe da URL para fazer referência ao caminho. Esta sintaxe substitui o símbolo (~) pelo diretório raiz do aplicativo, por exemplo: ~App_Dataproduces.mdb. O uso de caminhos relativos ao aplicativo facilita a movimentação de páginas de um local para outro sem quebrar as referências ao banco de dados, por isso é recomendado usar caminhos relativos ao aplicativo sempre que possível.
Primeiro, vejamos a sintaxe de um caminho totalmente qualificado, que contém o caminho completo para um arquivo MDB, começando pela raiz da unidade do computador onde o arquivo está localizado:
<asp:accessdatasource . arquivo de dados = "C:WebSitesWebApplicationApp_DataMyMdb.mdb"> |
<asp:accessdatasource . |
<asp:accessdatasource .datafile="MyDaughterFolder/MyMdb.mdb">. |
<asp:accessdatasource . |
<asp:accessdatasource . |