Você está na página 1de 39

Programao em C# com Visual Studio .

NET

Prof. Eder Samaniego Villalba

ADO .NET

Disponibiliza as classes necessrias para acesso e manipulao em BD e arquivos XML. Uma das vantagens do ADO .NET a possibilidade de trabalharmos de forma desconectada do BD. As classes esto no namespace System.Data. Ainda ser necessrio um dos seguintes:

System.Data.SqlClient System.Data.OleDb System.Data.OracleClient

Programao em C#

ADO .NET

O SqlClient usado para acessar BDs SQL Server a partir da verso 7.0. O OleDb para Access e SQL Server anterior a verso 7.0. O OracleClient para BDs Oracle. Podem ser acessador outros BDs a partir de outros namespaces, mas estes devem ser instalados separadamente. Acesse os sites dos fabricantes para obter o namespace.
Programao em C#

ADO .NET

A Oracle disponibiliza classes para acesso ao BD que tem performance superior as da Microsoft. Vamos criar do comeo ao fim uma aplicao para gerenciamento de projetos, sem nos aprofundarmos nas regras de negcio.

Programao em C#

Gerenciamento de Projetos

Crie um projeto Windows Application chamado ControleProjetos. Adicione um BD ao projeto. Clique sobre o nome do projeto com o boto direito e selecione Add. Clique em New Item. Selecione Service-based Database. Nomeie o BD como Projetos.mdf. Clique em Add.
Programao em C#

Gerenciamento de Projetos

O Data Source Configuration Wizard executado, clique em Cancel. Solution Explorer

Programao em C#

Gerenciamento de Projetos

Localize a janela Server Explorer (ou Database Explorer). Menu View. Nesta janela podemos criar e manipular o contedo do BD.

Programao em C#

Gerenciamento de Projetos

Clique com boto direito em Tables e Add new table. Chame-a de Empresas. Crie os campos:

Programao em C#

Gerenciamento de Projetos

Vamos manipular a propriedade Is Identity. Quando esta propriedade est selecionada o campo em questo fica sendo auto-numervel. Selecione o campo EmpresaID, v nas propriedades, selecione o campo Is Identity ao expandir o campo Identity Specification e escolha a opo Yes. Salve o projeto (Ctrl + S)
Programao em C#

Gerenciamento de Projetos

Uma chave primria define um campo obrigatrio que no pode ter valores repetidos. Serve como identificador da tabela. Defina o campo EmpresaID como chave primria. Para isto, clique com o boto direito sobre o campo e selecione Set Primary Key.

Programao em C#

10

Gerenciamento de Projetos

Clique em Database Diagrams. Clique em Yes para as duas perguntas, esto apenas avisando que no existem diagramas ainda. Clique com o boto direito em Database Diagrams e escolha Add New Diagram. Adicione a tabela Empresas. Clique no nome da tabela, no diagrama, com o boto direito e selecione Table View Column Names
Programao em C#

11

Gerenciamento de Projetos

Clique em Save All. Deixe o diagrama nomeado como Diagram1. Server Explorer:

Programao em C#

12

Gerenciamento de Projetos

Adicione uma nova tabela TipoEmpresa

Save All e nomeie a tabela TipoEmpresa

Programao em C#

13

Gerenciamento de Projetos

Server Explorer:

Programao em C#

14

Gerenciamento de Projetos

Podemos ter cadastrados vrios tipos de empresas (Empresas Clientes, Fornecedores, Representantes, ...). Cada tipo destes armazenado na tabela TipoEmpresa. Quando formos cadastras uma empresa, precisamos informar qual o seu tipo. Portanto, vamos criar um relacionamento entre as tabelas Empresa e TipoEmpresa.
Programao em C#

15

Gerenciamento de Projetos

Abra o Diagram1. Clique com o boto direito sobre o diagrama e escolha a opo Add Table. Adicione a tabela TipoEmpresa. Aps adicionada a tabela, note que em ambas possumos o campo TipoID int. Para fazer um relacionamento necessrio que os campos sejam do mesmo tipo.
Programao em C#

16

Gerenciamento de Projetos

Para fazer o relacionamento, clique em TipoID na TipoEmpresa e com o boto pressionado arraste o mouse at o TipoID de Empresas. Na janela Tables and Colums verifique se o relacionamento esta sendo feito corretamente. Pode ser dado um nome para este relacionamento. Veja que o campo TipoID de Empresas a chave estrangeira.
Programao em C#

17

Gerenciamento de Projetos

Um relacionamento normalmente feito entre uma chave primria e uma estrangeira. exibida a janela Foriegn Key Relationship que permite maiores alteraes. Clique em OK sem alterar seus campos. O relacionamento criado do tipo um-paravarios, ou seja, pode-se ter varias empresas com um mesmo tipo e cada empresa s pode ter um tipo.
Programao em C#

18

Gerenciamento de Projetos

Programao em C#

19

Gerenciamento de Projetos

Save All. Vamos adicionar alguns dados nas tabelas. Primeiro na tabela TipoEmpresa, j que criamos um relacionamento no podemos ter uma empresa sem tipo. Clique com o boto direiro em TipoEmpresa e selecione Show Table Data. No necessrio adicionar valores em TipoID. Auto-numervel.
Programao em C#

20

Gerenciamento de Projetos

A tabela TipoID fica assim:

Adicione um novo form ao projeto chamado CadastroEmpresas.

21

Gerenciamento de Projetos

No menu Data clique em Show Data Sources. Clique em Add New Data Source. Selecione Database e clique em Next. Selecione o banco Projetos.mdf. Note a Connection String criada. Clique em next.

Programao em C#

22

Gerenciamento de Projetos

A prxima tela possibilita gravar a string de conexo para um arquivo de configurao. recomendado pois facilita o processo de disponibilizao da aplicao. Se a aplicao for instalada em outro computador e precisar usar um outro caminho para acessar o BD, basta mudar a string de conexo no arquivo de configurao. Salve a string.
Programao em C#

23

Gerenciamento de Projetos

Agora pode-se selecionar quais tabelas, procedures, etc, queremos utilizar na aplicao. Selecione as duas tabelas e clique em finish.

24

Gerenciamento de Projetos

D um duplo clique sobre o ProjetoDataSet na SolutionExplorer para abrir o mesmo.

Programao em C#

25

Gerenciamento de Projetos

O DataSet possui uma representao das tabelas do BD. Ele tem mtodos que permitem a manipulao dos registros no BD. Clique com o boto direito sobre o Fill,GetData() de TipoEmpresa e selecione Preview Data. Na janela aberta clique em Preview. O contedo da tabela mostrado.
Programao em C#

26

Gerenciamento de Projetos

Isto significa que o mtodo est recuperando os dados adequadamente. Clique em close. No Data Sources clique com o boto esquerdo em Empresas e selecione Details. Clique novamente em Empresas e arraste-a para o formulrio CadastroEmpresa.

Programao em C#

27

Gerenciamento de Projetos

Os campos so adicionados. Assim como 5 controles no projeto:

projetosDataSet empresasBindingSource empresasTableAdapter empresasBindingNavigator tableAdapterManager

Estes so os controles responsveis por manipular os dados no BD.


Programao em C#

28

Gerenciamento de Projetos

29

Gerenciamento de Projetos

Verifique que foi adicionado cdigo no formulrio CadastroEmpresas. Duplo clique no Form1 e arraste um boto. Adicione o evento ao Button1 e o seguinte cdigo:
CadastroEmpresas frm = new CadastroEmpresas(); frm.Show();

Execute a aplicao. Clique no sinal de adio na barra do CadastroEmpresas e adicione valores de teste.
Programao em C#

30

Gerenciamento de Projetos

Ao fechar os dados ainda no esto sendo salvos. Na Solution Explorer clique em ControleProjetos. Alguns botes acima aparecero. Clique em Show All Files. Na pasta bin\debug esto os arquivos compilados na nossa aplicao.
Programao em C#

31

Gerenciamento de Projetos

Toda vez que compilamos e executamos nossa aplicao esses arquivos so substituidos pelo resultado da compilo feita nos arquivos do cdigo fonte. Perceba que nesta pasta existe um arquivo de BD. Quando executamos e adicionamos registros esse BD modificado, no o que esta na pasta de projetos por isto que os dados so modificados.
Programao em C#

32

Gerenciamento de Projetos

Temos 2 BDs, manipulamos em um quando executamos e usamos outro para projetar. Para resolver o problema, clique no BD original e em Properties mude Copy to Output Directory para Do not copy. Isso far com que o BD no seja copiado para a pasta Debug. S que para a aplicao funcionar necessria uma mudana no arquivo app.config.
Programao em C#

33

Gerenciamento de Projetos

Deve-se fornecer o caminho completo do BD. Basta clicar no BD original e verificar a propriedade Full Path.

Acrescente alguns valores e reinicie a aplicao. Desta vez os dados persistem.


Programao em C#

34

Gerenciamento de Projetos

Este problema aconteceu porque estamos em ambiente de produo, adicionamos um BD direto no projeto. Quando se tem um servidor especfico rodando um BD este problema no acontece. Neste caso, ser preciso informar o IP do servidor, o nome do BD, o login e senha na string de conexo.

Programao em C#

35

Gerenciamento de Projetos

O ltimo ajuste ser feito no form CadastroEmpresas. Para cadastrar uma empresa necessrio informar um nmero no campo Tipo ID, por causa do relacionamento. O usurio no sabe o cdigo do tipo da empresa que ele esta cadastrando. Sabe o tipo, mas no o cdigo.

Programao em C#

36

Gerenciamento de Projetos

Apague o textBox do campo Tipo ID e coloque no lugar um ComboBox. Clique sobre a seta no ComboBox. Marque a opo Use data bound items Em Data Source expanda Other Data Sources Project Data Sources e ProjetosDataSet. Clique em TipoEmpresa.

Programao em C#

37

Gerenciamento de Projetos

Foram adicionados os controles tipoEmpresaBindingSource e tipoEmpresaTableAdapter para manipular os dados da tabela TipoEmpresa. Ainda na janela ComboBox Tasks, selecione Nome para Display Member e TipoID para Value Member. O ComboBox ir mostrar o campo Nome, mas passa o valor do campo tipoID quando selecionado.
Programao em C#

38

Gerenciamento de Projetos

Na opo Selected Value selecione TipoID em empresaBindingSource. Isto relaciona o valor selecionado da tabela TipoEmpresa com o campo TipoID da tabela Empresas. Execute a aplicao.

Programao em C#

39

Você também pode gostar