Artigos / Tekever.eu

Artigos de desenvolvimento e opinião em tecnologia.

Secções:

Linux | Windows | .NET / ASP | LAMP | Java | Só Conversa |

 


Pedidos à Base Dados - ASP.NET/C#

  2006-08-22




A forma mais simples de executar pedidos de execução de pedidos à base de dados para listagens, etc, é usando os objectos SQL Data Source (ver exemplo Formulário 2). São relativamente simples de configurar e executam os pedidos que queremos sem grandes problemas.
Por exemplo, queremos listar os países introduzidos na base de dados, saber o nome de cada um bem como a zona a que pertencem.
Para isso podemos usar um objecto de DataList disponível na toolbox no grupo de objectos “Data”, arrastando-o para o nosso código.
Criamos também um SQL Data Source. No modo de visualização “design” seleccionamos o SQL Data Source e clicamos na seta que aparece no canto superior direito para configuração. Quando configuramos estamos basicamente a dizer que tipo de pedido vai ser feito à base de dados. Neste caso queremos saber o nome e zona de cada país, por isso a declaração fica do tipo “SELECT países_nome, países_zona FROM paises” e adicionamos a seguinte clausula “WHERE”:



A clausula WHERE adicionada tem a ver com a selecção de apenas os países com id superior a 1, pois o primeiro valor que introduzimos na tabela de países é vazio e não nos interessa lista-lo. Depois de adicionada a clausula podemos inclusive testar a declaração antes de escolher Finish.

 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$
ConnectionStrings:conexão_BD %>"

SelectCommand="SELECT [paises_nome], [paises_zona] FROM [paises]
WHERE ([paises_id] > @paises_id)"
>
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="paises_id" Type="Int32"
/>
</SelectParameters>
</asp:SqlDataSource>
 




Quando configuramos o DataList para que a sua informação provenha do SQLDataSource criado, são criadas automaticamente Labels com o nome da coluna seleccionada e a referência para o seu valor. Podemos no entanto arranjar esse código à nossa medida de modo a aparecer apenas o que nos interessa mostrar da seguinte forma:

 
<b>Lista de Países da Base Dados</b><br /><br />
<asp:DataList ID="DataList1" runat="server"
DataSourceID="SqlDataSource1">
<ItemTemplate>
Nome:
<%# Eval("paises_nome") %>
<br />
Zona:<%# Eval("paises_zona") %><br />
<br />
</ItemTemplate>
</asp:DataList>
 
 


A maneira portanto de retirar a informação desejada de qualquer declaração de SQL num DataList (dentro das tags de ItemTemplate) é através do seguinte trecho de código:

<%# Eval(“nome do campo”)%>


O resultado ao correr a página vai ser este:



Embora o uso destas ferramentas possa cobrir grande parte do espectro de necessidades, caso se queira maior flexibilidade na manipulação das declarações e controlo de informação não há nada como definir a nossa ligação em programação, que pode ser feito no ficheiro de extensão cs associado à pagina web.
O código geral para acesso à base de dados desta forma é o seguinte:

 
//(importar biblioteca)
using System.Data.SqlClient;
 
//(caso: select)
string connstring =
ConfigurationManager.ConnectionStrings["nome_da_conexao"].ConnectionString;
string sql_query = "SELECT nome, idade…..FROM….WHERE…...";
SqlConnection conn = new SqlConnection(connstring);
SqlCommand cmd = new SqlCommand(sql_query, conn);
conn.Open();
SqlDataReader leitor = cmd.ExecuteReader();
 
leitor.Read(); // exemplo de leitura de um registo
 
string nome;
int idade;
nome = (string)leitor["nome"];
morada = (int)leitor["idade"];
 
int contador = 0;
 
while(leitor.Read()) // exemplo de contagem de varios registos
{ contador++; }
 
 
//(caso: insert/update/delete)
string connstring =
ConfigurationManager.ConnectionStrings["nome_da_conexao"].ConnectionString;
string sql_query = "INSERT INTO….WHERE…...";
SqlConnection conn = new SqlConnection(connstring);
SqlCommand cmd = new SqlCommand(sql_query, conn);
conn.Open();
cmd. ExecuteNonQuery();
 


caso queiramos apenas editar a declaração de SQL feita associada a um SQLDataSource, no ficheiro cs basta fazer na zona de Page Load:

 
protected void Page_Load(object sender, EventArgs e)
{
string declaracao_sql = "SELECT paises_nome, paises_zona FROM paises
WHERE paises_id > 1"
;
SqlDataSource1.SelectCommand = declaracao_sql;
}
 





Escrito por Tânia Penedo
Website do autor: http://www.taniapenedo.com
Dados do autor: Programação multi-plataforma; C#, PHP, Java, MySQL, SQL-Server.

Comentários

Faça um comentário

Comentário

Nome
E-mail

Este comentário só ficará válido depois de fazer clique no link que lhe será enviado já a seguir para o e-mail indicado. Como tal garanta que o seu e-mail está válido e operacional, se não receber o nosso e-mail verifique os seus filtros de SPAM, ou a caixa de Lixo/Trash do seu cliente de e-mail.

 

Avaliar artigo

Avalie este artigo

 



Nome
E-mail

Este voto só ficará contabilizado depois de fazer clique no link que lhe será enviado já a seguir para o e-mail indicado. Como tal garanta que o seu e-mail está válido e operacional, se não receber o nosso e-mail verifique os seus filtros de SPAM, ou a caixa de Lixo/Trash do seu cliente de e-mail.

 

 

 

 

Recomendar este artigo a alguém

Envie a alguém conhecido

De:  
Nome E-mail
 
Para:  
Nome E-mail
Será enviado um link da página deste artigo para o e-mail que indicar como destino.