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: Elabo ra do por: Verificad o po r: Apro va do por: Vers ão: 1 p.1/8
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. Elabo ra do por: Verificad o po r: Apro va do por: Vers ão: 1 p.2/8
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) Elabo ra do por: Verificad o po r: Apro va do por: Vers ão: 1 p.3/8
'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() End Sub Elabo ra do por: Verificad o po r: Apro va do por: Vers ão: 1 p.4/8
de Pesquisa de Imóveis Arquitectura de dados Este módulo efectua pesquisas sobre a tabela Imóveis que se encontra na Base de Dados: Elabo ra do por: Verificad o po r: Apro va do por: Vers ão: 1 p.5/8
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. Elabo ra do por: Verificad o po r: Apro va do por: Vers ão: 1 p.6/8
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 End Sub Elabo ra do por: Verificad o po r: Apro va do por: Vers ão: 1 p.7/8
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 Elabo ra do por: Verificad o po r: Apro va do por: Vers ão: 1 p.8/8