E l a b o r a d o p o r : V e r i f i c a d o p o r : A p r o v a d o p o r : V e r s ã o : 1 p . 1/8
Rafael Pais Data: 07-08-2008
Módulo de Adicionar Imóveis – Arquitectura de dados
Este módulo manipula a tabela “Imóveis” que se encontra na Base de Dados e faz inserções dos respectivos dados sob a mesma:
Módulo de Adicionar Imóveis – Arquitectura de dados
Descrição de cada uma das tabelas:
Imóveis:
Tabela onde fica guardado os Imóveis;
Codigos_Postais:
Tabela onde fica armazenado os códigos Postais (3 + 2 Dígitos) e a respectiva Localidade;
Distritos:
Tabela onde fica armazenado os Distritos;
Concelhos:
Tabela onde fica armazenado os Concelhos que pertencem a um determinado Distrito;
Freguesias:
Tabela onde fica armazenado as Freguesias que pertencem a um determinado Concelho e Distrito.
E l a b o r a d o p o r : V e r i f i c a d o p o r : A p r o v a d o p o r : V e r s ã o : 1 p . 3/8
Rafael Pais Data: 07-08-2008
Módulo de Adicionar Imóveis – Estruturas tecnológicas
O código a seguir implementa a inserção de um determinado imóvel na Base de Dados conforme os parâmetros inseridos pelo Administrador. As tecnologias utilizadas são o VB.net e o Microsoft SQL Server. Quando este carrega no botão de inserir os dados, o código é executado:
Sub inserir(ByVal Source As Object, ByVal E As EventArgs) Handles
BtnInserir.Click
Dim inserirImovel As New SqlDataSource()
inserirImovel.ConnectionString =
ConfigurationManager.ConnectionStrings("ImobiliariaConnectionString2")
.ToString()
'Comando para Inserir Imóvel
inserirImovel.InsertCommand = "INSERT INTO
Imoveis(Cod_Imovel,Tipo,Preco,Area,Num_Quartos,Num_Frentes,Num_Pisos,P roximidade,Disponibilidade,Pe_Direito,Observacoes,Morada,CodPostal_4Di gitos,CodPostal_3Digitos,Cod_Freguesia,Cod_Concelho,Cod_Distrito) VALUES (@cod, @tipo, @preco, @area, @quartos, @frentes, @pisos, @proximidade, @disp, @pe_direito, @obs, @morada, @codpostal_4dig, @codpostal_3dig, @codfreguesia, @codconcelho, @coddistrito)"
'Parâmetros do Imóvel (Caixas de Texto)
inserirImovel.InsertParameters.Add("cod", TxtCod.Text)
inserirImovel.InsertParameters.Add("tipo", TxtTipo.Text)
inserirImovel.InsertParameters.Add("preco", TxtPreco.Text)
inserirImovel.InsertParameters.Add("area", TxtArea.Text)
inserirImovel.InsertParameters.Add("quartos", TxtQuartos.Text)
inserirImovel.InsertParameters.Add("frentes", TxtFrentes.Text)
inserirImovel.InsertParameters.Add("pisos", TxtPisos.Text)
inserirImovel.InsertParameters.Add("proximidade", TxtProximidade.Text) inserirImovel.InsertParameters.Add("disp", TxtDisponibilidade.Text) inserirImovel.InsertParameters.Add("pe_direito", TxtPeDireito.Text)
inserirImovel.InsertParameters.Add("obs", TxtObs.Text)
inserirImovel.InsertParameters.Add("morada", TxtMorada.Text)
inserirImovel.InsertParameters.Add("codpostal_4dig", TxtCodPostal_4Digitos.Text) inserirImovel.InsertParameters.Add("codpostal_3dig", TxtCodPostal_3Digitos.Text) inserirImovel.InsertParameters.Add("codfreguesia", TxtCodFreguesia.Text) inserirImovel.InsertParameters.Add("codconcelho", TxtCodConcelho.Text) inserirImovel.InsertParameters.Add("coddistrito", TxtCodDistrito.Text)
'Executa o Comando (Fazendo o tratamento de erros) e actualiza a lista dos Imóveis
Try
inserirImovel.Insert()
Catch ex As Exception
MsgBox("Erro ao Inserir Imóvel" + Chr(13) + "Verifique os
Dados", MsgBoxStyle.Critical, "Erro")
Return
End Try
MsgBox("Os Dados Foram Inseridos Com Sucesso!",
MsgBoxStyle.Information, "Informação")
GridView1.DataBind()
E l a b o r a d o p o r : V e r i f i c a d o p o r : A p r o v a d o p o r : V e r s ã o : 1 p . 5/8
Rafael Pais Data: 07-08-2008
Módulo de Pesquisa de Imóveis – Arquitectura de dados
Módulo de Pesquisar Imóveis – Arquitectura de dados
Descrição de cada uma das tabelas:
Imóveis:
Tabela onde fica guardado os Imóveis;
Codigos_Postais:
Tabela onde fica armazenado os códigos Postais (3 + 2 Dígitos) e a respectiva Localidade;
Distritos:
Tabela onde fica armazenado os Distritos;
Concelhos:
Tabela onde fica armazenado os Concelhos que pertencem a um determinado Distrito;
Freguesias:
Tabela onde fica armazenado as Freguesias que pertencem a um determinado Concelho e Distrito.
E l a b o r a d o p o r : V e r i f i c a d o p o r : A p r o v a d o p o r : V e r s ã o : 1 p . 7/8
Rafael Pais Data: 07-08-2008
Módulo de Pesquisa de Imóveis – Estruturas tecnológicas
Em primeiro lugar, para que apareçam as listas de Distritos, Concelhos e Freguesias tem que se apontar a fonte onde se encontram estes, que neste caso é na Base de Dados, nas tabelas “Distritos”, “Concelhos” e “Freguesias”, respectivamente. Portanto, em cada uma das “DropDownList”, tem que se criar um “SqlDataSource” apontando para cada uma das tabelas. No caso dos Distritos, basta somente fazer uma Query: SELECT * FROM [Distritos]. Assim na DropDownList dos Distritos, irão aparecer os Distritos que estão na tabela “Distritos” da Base de Dados. Para os Concelhos, como terá que aparecer os concelhos que pertencem ao Distrito Seleccionado, a Query terá que um pouco diferente da anterior: SELECT * FROM [Concelhos] WHERE ([Cod_Distrito] = @Cod_Distrito). Assim, só aparecer os concelhos que pertencem ao Distrito seleccionado.
Para as freguesias, o conceito é o mesmo: SELECT * FROM [Freguesias] WHERE
(([Cod_Concelho] = @Cod_Concelho) AND ([Cod_Distrito] =
@Cod_Distrito)).
No carregamento da página, terá que se fazer uma conexão à Base de Dados e indicar à tabela a Query desejada para mostrar os resultados consoante o utilizador seleccionou (as variáveis @Cod_Distrito, @Cod_Concelho e @Cod_Freguesia estão ligados aos controlos DropDownList respectivos. As tecnologias utilizadas são o VB.net e SQL Server. Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim conexaoBD As String = "Data
Source=.\SQLEXPRESS;AttachDbFilename=C:\Imobiliaria.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
'Query por Ordem Crescente
SqlDataSource4.SelectCommand = "SELECT [Tipo], [Area],
[Num_Quartos], [Num_Frentes], [Num_Pisos], [Pe_Direito],
[Proximidade], [Disponibilidade], [Observacoes], [Morada], [Preco] FROM [Imoveis] WHERE (([Cod_Concelho] = @Cod_Concelho) AND
([Cod_Distrito] = @Cod_Distrito) AND ([Cod_Freguesia] = @Cod_Freguesia) AND ([Tipo] = @Tipo)) ORDER BY Preco ASC" SqlDataSource4.ConnectionString = conexaoBD
'Query por Ordem Decrescente
SqlDataSource5.SelectCommand = "SELECT [Tipo], [Area],
[Num_Quartos], [Num_Frentes], [Num_Pisos], [Pe_Direito],
[Proximidade], [Disponibilidade], [Observacoes], [Morada], [Preco] FROM [Imoveis] WHERE (([Cod_Concelho] = @Cod_Concelho) AND
([Cod_Distrito] = @Cod_Distrito) AND ([Cod_Freguesia] = @Cod_Freguesia) AND ([Tipo] = @Tipo)) ORDER BY Preco DESC" SqlDataSource5.ConnectionString = conexaoBD
Finalmente, o código a seguir envia para uma tabela os resultados pretendidos. Este utiliza das tecnologias VB.net e SQL Server:
Sub Pesquisa(ByVal Source As Object, ByVal E As EventArgs) Handles
BtnPesquisar.Click
'Verifica se o utilizador escolheu a lista por ordem Crescente
If DropOrdenar.SelectedValue = "crescente" Then
GridView1.DataSourceID = "SqlDataSource4"
GridView1.DataBind()
GridView1.Visible = True
End If
'Verifica se o utilizador escolheu a lista por ordem
Decrescente
If DropOrdenar.SelectedValue = "decrescente" Then
GridView1.DataSourceID = "SqlDataSource5" GridView1.DataBind() GridView1.Visible = True End If End Sub