Desenvolvimento - C#
Cadastro de um Consultório em Windows Forms, com C# e SQL Server – Parte 10
Nesta parte criaremos os métodos do Cadastro de Consultas, referentes aos métodos da classe de Acesso a Dados, criada nos artigos anteriores. Acompanhem.
por Wellington Balbo de CamargoCadastro de um Consultório em Windows Forms, com C# e SQL Server – Parte 10
Olá pessoal, continuamos nossa série de artigos criando aplicações simples em Windows Forms usando a linguagem C# e o banco de dados SQL Server.
Nesta parte iremos criar o Cadastro de Consultas, implementando os métodos da classe de Acesso a Dados para que o mesmo funcione, com a inclusão de 2 novos métodos. Acompanhem:
Como dito no fim do artigo anterior, no final deste, segue o Cadastro de Médicos incluso no código-fonte, que será disponibilizado ao fim deste artigo, seguindo o padrão dos outros cadastros.
Dito isto, vamos criar o Cadastro de Consultas. Ele será um pouco diferente dos outros Cadastros, pois terá, na classe de Acesso a Dados 2 novos métodos, o que irá Pesquisar pelo nome do Paciente e a Pesquisa pelo nome d Médico. Outra diferença é que usaremos, mais a frente, LINQ, para fazermos estas pesquisas.
Primeira modificação a ser feita é em nosso DataSet, já que devemos implementar os tipos de consultas que iremos fazer, pelo código da consulta, pelo nome do paciente e/ou pelo nome do médico.
Abra seu DataSet (no meu caso, o nome é dsConsulta) e clique com o botão direito no ConsultaTableAdapter, e clique em Add Query, para criarmos os métodos da mesma forma como fizemos anteriormente. Este 1º método será o de Pesquisa por ID da Consulta.
Como feito anteriormente, clique em Use SQL Statements e SELECT which returns rows, clique em Next para aparecer esta tela:
Devemos alterar esta instrução SQL, já que queremos retornar o ID da Consulta, Nome do Medico, Nome do Paciente, Data da Consulta e Hora Inicial. Iremos também fazer um INNER JOIN (ligação entre duas ou mais tabelas) com as tabelas Medico e Paciente. Para fins didáticos (e seguindo a videoaula) vamos usar o Query Builder. Clique nele e, na tela que aparece, clique com o botão direito na parte branca ao lado da tabela Consulta e clique em Add Table, adicione as tabelas Medico e Paciente, selecione os seguintes campos e execute a instrução:
Nossa instrução SQL ficará da seguinte forma:
Só que ainda não está pronta. Vamos usar dois filtros, para retornarmos as consultas parametrizadas pelo ID e pesquisarmos as consultas apenas que estiverem ativas. Altere sua instrução para que fique desta forma:
Clique em Next e na próxima tela, deixe selecionado a 1ª opção, Fill a DataTable, dê o nome de PesquisaID para ele, clique em Next e em Finish. Deverá aparecer esta mensagem:
Que apenas indica que a instrução SQL usada nos retorna dados diferentes das outras consultas, sem problemas.
Nosso campo Ativo está com o valor nulo (NULL), se o deixarmos assim, nossa query recém criada não irá funcionar. Abra o SQL Server e confirme:
Para que funcione, devemos alterar este valor do campo Ativo. No SQL Server execute a seguinte instrução:
Agora sim, nossa query irá funcionar, já que nosso campo Ativo está com o valor 1 (True). Para testar, clique com o botão direito em cima da query e clique em Preview Data. Na janela que surge, coloque o valor parametrizado de nossa consulta, que no caso é referente ao campo IdConsulta e clique em Preview:
Nosso próximo método será pelo Nome do Paciente. Faça o mesmo procedimento que o método anterior, só altere a instrução SQL para a de baixo:
Clique em Next, selecione apenas a 1ª opção, dê o nome de PesquisaNomePaciente e clique em Finish. Faça o mesmo para o próximo método, alterando a instrução SQL para nos retornar o nome do médico e dando o nome de PesquisaNomeMedico:
Assim nossa tabela Consulta terá 3 pesquisas diferentes:
Agora vamos a classe AcessoDados para criarmos a classe de AcessoDadosConsulta que, assim como as outras, irá herdar de AcessoDados e terá os mesmos métodos da classe base e mais os 2 métodos que implementamos a pouco:
Como você pode perceber, implementei os métodos PesquisaNomePaciente e PesquisaNomeMedico, o resto são os métodos sobrescritos de minha classe base AcessoDados. Não implementei estes 2 últimos métodos da classe base, pois os métodos da classe base são genéricos a todas as outras classes. Estes últimos são específicos para esta classe.
Estou disponibilizando para download o que fizemos até esta parte do artigo. Para baixar, clique aqui. Na próxima parte de nossa série de artigos iremos implementar os métodos referentes aos criados na classe AcessoDadosConsulta. Não perca!
Créditos à Luciano Pimenta, que fez as videoaulas e ao Portal Linha de Código, por onde pude baixá-las (mediante assinatura), estudá-las e posteriormente fazer este artigo.
Quaisquer dúvidas mandem emails para wellingtonbalbo@gmail.com ou deixem nos comentários deste artigo que responderei o mais breve possível.
Até o próximo artigo!