Cadastro de Consultório em Windows Forms, com C# e SQL Server – Parte 1

Olá pessoal, começo aqui mais uma série de artigos criando aplicações simples em Windows Forms usando a linguagem C# e o banco de dados SQL Server. Desta vez iremos criar um sistema de um consultório médico, com cadastro de pacientes, médicos e consultas.

Faço este artigo com base nas videoaulas de Windows Forms de Luciano Pimenta, do Portal Linha de Código. Acompanhem o passo-a-passo:

Começe abrindo o SQL Server e crie um novo database com o nome Consultorio. Após isso crie as tabelas de Pacientes, Médicos e Consultas, conforme mostra a imagem abaixo:

Agora é preciso criar os relacionamentos entre as tabelas. Para isso, no Solution Explorer, clique com o botão direito na tabela Consulta recém criada, clique em Design, depois nos botões do menu clique em Relationships, como mostra a imagem:

Na janela que surge, clique no botão Add, abra a aba Tables and Columns Specification e clique no botão ao lado:

Na janela que abre, em Primary key table, faça os relacionamentos, escolhendo a Coluna Medico e abaixo relacione o IDMedico da tabela Medico com o IDMedico da tabela Consulta. Faça isso também com a tabela Pacientes:

Após isso, salve a tabela, irá aparecer uma mensagem avisando que as alterações feitas se aplicarão nas demais tabelas, clique em Sim e aguarde.

Agora abra o Visual Studio, crie um novo projeto Windows Forms e dê o nome de Consultas:

Será gerado um formulário, ele será nosso form principal, clique nele, abra a janela Properties (CTRL+W+P) altere as seguintes propriedades:

Text – coloque o nome Consultas

(Name) – altere para frmPrincipal

WindowState – altere para Maximized, para abrir sempre maximizado

MaximizeBox – false

MinimizeBox – false – para que só apareça o botão de fechar no form

KeyPreview – true, para ativar o uso do teclado nos eventos do form

Agora abra a janela Toolbox (CTRL+W+X) e arraste da aba Menus & Toolbars um Toolstrip, que nada mais é do que uma barra de controles para seu form. Clique no botão ao lado dele, selecione o controle Button, clique com o botão direito nele e clique em DisplayStyle > ImageAndText. Seu form deverá ficar assim:

Agora vamos adicionar um novo Data Source, para isso, clique no menu Data > Add New Data Source. Na janela que aparece, selecione Database e clique em Next. Essa parte do exemplo é bem parecida com a que ensinei na 1ª parte do artigo de Acesso á Dados, postada dias atrás.

Clique em New Connection,  selecione em Server Name, o servidor local do seu pc, se estiver com dúvidas quanto a isso, apenas digite (local)\SQLEXPRESS (lembrando que este exemplo usa a versão Express do SQL Server), selecione o Database Consultorio, criado anteriormente, clique em OK, em Next, altere o nome de sua connectionstring para strConsultorio, clique em Next e aguarde. Na próxima tela será perguntado quais objetos você deseja adicionar ao seu DataSet, clique em Tables, altere o nome do seu DataSet se quiser e clique em Finish.

Á primeira vista, parece que nada aconteceu, mais se você abrir a janela Solution Explorer (CTRL+W+S) ou clicar em Data > Show Data Sources (SHIFT+ALT+D) verá que nosso DataSet foi criado com sucesso:

No Solution Explorer, clique no nosso projeto com o botão direito e clique em Add > Windows Form. Dê o nome de frmMedico e clique em OK.

Altere a proprieade Text para Cadastro de Médicos e na janela Data Sources que vemos na imagem acima, repare que nossas tabelas trazem os controles adequados a elas, como por exemplo, se você expandir a tabela Medico, e clicar em IDMedico verá que podemos usar um Textbox, um Label, etc. Isso é feito automaticamente pelo próprio Visual Studio, ele mapeia os dados que vem do banco SQL e nos mosta quais os controles mais adequados à cada coluna:

Altere o controle Label para o campo IDMedico como mostra a imagem acima. Agora arraste a tabela Medico para nosso form que ele cria automaticamente a estrutura necessária para inserir dados em nosso form. Faça os ajustes necessários nos campos como mostra a imagem:

Agora volte ao formulário principal, dê dois cliques no controle ToolStrip que adicionamos a ele ou aperte F7 para ir ao evento toolStripButton1_Click e insira o seguinte código:

O que fiz no código acima foi instanciar o formulário médico e fazer a chamada a ele por meio do método ShowDialog().

Agora compile o projeto e veja o resultado:

Experimente inserir, salvar e excluir registros, pare a compilação e compile de novo e note que os registros são salvos no banco e estão disponíveis para posterior consulta. Assim, encerramos aqui a 1ª parte da série de artigos de Windows Forms com acesso à dados.

Créditos à Luciano Pimenta, que fez as videoaulas que deram origem à este artigo e ao Portal Linha de Código, por onde pude baixá-las e estudá-las.

Até o próximo artigo!

25 comentários em “Cadastro de Consultório em Windows Forms, com C# e SQL Server – Parte 1

  1. Otimo o tutorial . eu fiz faculdade de analise e adoro pogramação acabei de fazer um curso de c# com asp.net e estou começando a caminha gostaria que me indicasse um livro que seria o ideal ja que stou começando…..

    Obrigado.

    Curtir

  2. Boa tarde mano.
    Sou programador WEB e uso PHP, mas já estou bastante saturado com a baixa produtividade do ambiente web e a verdadeira sopa de letrinha que é a realidade, fiz bastantes pesquisas e encontrei o seu blog que achei bem interessante, já assisti umas vídeo aulas e deu para perceber que C#.NET é de longe mais produtivo que o PHP até pelo fato de não depender de inúmeras outras linguagens para funcionar e como o meu foco é a produção de sistemas de gestão e não Paginas Web, resolvi me aprofundar na linguagem e seguir alguns tutorias enquanto os livro que comprei não chegam e esse tutorial do Consultório é bem legal, tentei configura na minha maquina um ambiente mais próximo possível do apresentado no site, estou usando VS2008 C# express e o SQL server 2005 que vem no pacote, apesar do VS Express ser bem diferente das telas apresentadas aqui consegui seguir acredito eu esse primeiro Passo-a-Passo, mas não tive sucesso ao gravar alguma informação na tabela medico, não da nenhum erro simplesmente não grava.
    A conexão do VS com SQL acredito que está ok pois consigo inserir dados diretamente DataBaseExplorer.

    E em OFF vc teria como me mandar links Torrentes do VS pro daquele jeitinho brasileiro !! hehehe

    Obrigado

    Curtir

    1. Hilton, que legal saber que você saiu do PHP e está se aprofundando em C#.

      Dica: não foque apenas em Windows Forms cara, na verdade você deveria se focar mais em ASP.NET e menos em Windows Forms, mais como você está aprendendo acho que no momento não tem muito problema você se focar só em Forms, só não se acomode!

      Cara, no site de ferramentas Express da Microsoft tem muita opção boa, recomendo que você baixe o Visual Studio 2010 Express, segue link:

      http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express

      Aproveita e baixa também o SQL Server 2008 R2 Express, pelo seguinte link:

      http://www.microsoft.com/download/en/details.aspx?id=23650

      Caso queira uma versão Professional sem pagar, no Google você acha muita coisa cara, prefiro não te passar nenhum link por aqui.

      Abraços e bons estudos.

      Curtir

  3. fica uma dica estou com o sql server 2008 e acontece que por padrão na column properties dele a opção identity specification (da coluna primary key)esta como “no” ai quando se cria (no visual studio) o form e insere por exemplo os datails da tabela médico com o idmédico como label, ai da um problema ao debugar quando vai se inserir um novo médico não se acrescenta um numero para o idmédico ai o label fica vazio e acontece uma exeption quando grava, que diz que a coluna idmedico não pode ser null ai para que este problema não aconteça quando for criar as tabelas coloque nas propriedades das colunas primary key a opção identity specification como true assim quando for inserir um novo contato no banco o label do código vai sempre incrementar um numero a mais.
    valew espero ajudar alguem.

    Curtir

  4. Boa tarde,

    Se possivel gostaria que me esclarecesse uma duvida com relação a inserção dos dados, fiz como o passo à passo acima, quando executo, ensiro os dados nos seus respectivos campos, clico no botão salvar e logo é apresentado uma mensagem: Dizendo que o valor do IDMEDICO nao pode ser nullo porém no BD o campo está como IDENTITY, como posso solucionar este problema? (Por enquanto muito obrigado!)

    Curtir

    1. Lucas, esse erro ocorre porquê as tabelas estão relacionadas e quando você tenta gravar uma Consulta, ela “espera” os ID’s do Médico e do Paciente, vindos das tabelas Médico e Paciente, respectivamente. Como você não deve ter Médico algum cadastrado (nem Paciente) ocorre este erro.

      Veja a parte 2 do artigo e confira se ajuda:
      https://programandodotnet.wordpress.com/2010/02/16/cadastro-de-um-consultorio-em-windows-forms-com-c-e-sql-server-%E2%80%93-parte-2/

      Se tiver mais problemas, me envie um email: wellingtonbalbo@gmail.com.

      Para ver TODOS os artigos publicados até o momento, sobre o Consultório, confira no link abaixo:

      https://programandodotnet.wordpress.com/tag/consultorio/

      Abraços.

      Curtir

  5. Olá nobre, Wellington !
    Meu nome é Wellington e estou fazendo Analise e Desenvolvimento de Sistemas, nao é apenas para ponpagear o seu ego mas devo lhe dizer! Dentre os sites e artigos que acessei o seu sem duvidas é o melhor.estou fazendo um simples boletim escolar mas como estou engatinhando ainda, estou tomando um coro sem precedentes, cara da um moral ai pra mim mano!
    desde ja antecipo sinceros agradecinemtos.

    Curtir

  6. Opa estou usando seu tutorial, mais estou com um problema depois fazer tudo conforme o tutorial quando executo o programa não consigo salvar no banco de dados poderia me ajudar?

    Curtir

  7. Boa tarde, gostei muito do seu tutorial, mas estou com uma dúvida, criei meu banco no Firebird, acrescentei no meu projeto a referencia FirebirdSql.Data.FirebirdClient. Quando vou adicionar meu data source em new connection no change data source, não tem para o firebird, como fazer???????

    Curtir

  8. Primeiro estou gostando muito do seu artigo do Consultorio começei a fazer estou apanhando um pouco mas estou aprendendo muito, este ano começei a fazer analise em desenvolvimento em sistema, e tenho muito interesse de seguir está aréa, sou formado em processamento de dados e hoje sou analista de suporte em Infra, acessei o seu blog maneiro tem muita coisa para aprender la, os seus artigos vai me dar um start nessa nossa etapa profissional. estou tendo algumas dificuldades no sistema do Consultorio como posso tirar duvida com vc, exemplo na tabela Medico como adiciono um medico ele vai incrementando automatico ex. adicionei 5 , ai fecho o programa quando eu abro de novo e clico e adicionar o label do COdigo do medico aparece -1 ai quando salvo ele vai para o ultimo no caso 6. fico no aguardo.

    Curtir

    1. Cara, obrigado pelos elogios. Acredito que este blog seja um passo inicial para muitas pessoas que, assim como eu, estão no início da área de TI.
      Cara, pode dar erro porque esta é a forma mais simples e fácil de criar um cadastro. Avançe as próximas partes do Consultório e você verá formas melhores e mais especializadas de se trabalhar com dados em C#.
      Qualquer dúvida, só postar ou mandar para wellingtonbalbo@gmail.com.
      Abraços.

      Curtir

Expresse sua opinião!

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s