Você está na página 1de 39
Programação em C# com Visual Studio .NET Prof. Eder Samaniego Villalba
Programação em C# com
Visual Studio .NET
Prof. Eder Samaniego Villalba
ADO .NET  Disponibiliza as classes necessárias para acesso e manipulação em BD e arquivos XML.
ADO .NET
Disponibiliza as classes necessárias para
acesso e manipulação em BD e arquivos XML.
Uma das vantagens do ADO .NET é a
possibilidade de trabalharmos de forma
desconectada do BD.
As classes estão no namespace System.Data.
Ainda será necessário um dos seguintes:
• System.Data.SqlClient
• System.Data.OleDb
• System.Data.OracleClient

Programação em C#

2

ADO .NET  O SqlClient é usado para acessar BDs SQL Server a partir da versão
ADO .NET
O SqlClient é usado para acessar BDs SQL
Server a partir da versão 7.0.
O OleDb para Access e SQL Server anterior a
versão 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.

Programação em C#

3

ADO .NET  A Oracle disponibiliza classes para acesso ao BD que tem performance superior as
ADO .NET
A Oracle disponibiliza classes para acesso ao
BD que tem performance superior as da
Microsoft.
Vamos criar do começo ao fim uma aplicação
para gerenciamento de projetos, sem nos
aprofundarmos nas regras de negócio.

Programação em C#

4

Gerenciamento de Projetos  Crie um projeto Windows Application chamado ControleProjetos.  Adicione um BD ao
Gerenciamento de Projetos
Crie um projeto Windows Application chamado
ControleProjetos.
Adicione um BD ao projeto. Clique sobre o
nome do projeto com o botão direito e
selecione Add. Clique em New Item.
Selecione Service-based Database.
Nomeie o BD como Projetos.mdf.
Clique em Add.

Programação em C#

5

Gerenciamento de Projetos  O Data Source Configuration Wizard é executado, clique em Cancel.  Solution
Gerenciamento de Projetos
O Data Source Configuration Wizard é
executado, clique em Cancel.
Solution Explorer

Programação em C#

6

Gerenciamento de Projetos  Localize a janela Server Explorer (ou Database Explorer). Menu View.  Nesta
Gerenciamento de Projetos
Localize a janela Server Explorer (ou Database
Explorer). Menu View.
Nesta janela podemos criar e manipular o
conteúdo do BD.

Programação em C#

7

Gerenciamento de Projetos  Clique com botão direito em Tables e Add new table. Chame-a de
Gerenciamento de Projetos
Clique com botão direito em Tables e Add new
table. Chame-a de Empresas. Crie os campos:

Programação em C#

8

Gerenciamento de Projetos  Vamos manipular a propriedade Is Identity.  Quando esta propriedade está selecionada
Gerenciamento de Projetos
Vamos manipular a propriedade Is Identity.
Quando esta propriedade está selecionada o
campo em questão fica sendo auto-numerável.
Selecione o campo EmpresaID, vá nas
propriedades, selecione o campo Is Identity ao
expandir o campo Identity Specification e
escolha a opção Yes.
Salve o projeto (Ctrl + S)

Programação em C#

9

Gerenciamento de Projetos  Uma chave primária define um campo obrigatório que não pode ter valores
Gerenciamento de Projetos
Uma chave primária define um campo
obrigatório que não pode ter valores repetidos.
Serve como identificador da tabela.
Defina o campo EmpresaID como chave
primária.
Para isto, clique com o botão direito sobre o
campo e selecione Set Primary Key.

Programação em C#

10

Gerenciamento de Projetos  Clique em Database Diagrams.  Clique em Yes para as duas perguntas,
Gerenciamento de Projetos
Clique em Database Diagrams.
Clique em Yes para as duas perguntas, estão
apenas avisando que não existem diagramas
ainda.
Clique com o botão direito em Database
Diagrams e escolha Add New Diagram.
Adicione a tabela Empresas.
Clique no nome da tabela, no diagrama, com o
botão direito e selecione Table View  Column
Names
Programação em C#
11
Gerenciamento de Projetos  Clique em Save All.  Deixe o diagrama nomeado como Diagram1. 
Gerenciamento de Projetos
Clique em Save All.
Deixe o diagrama nomeado como Diagram1.
Server Explorer:

Programação em C#

12

Gerenciamento de Projetos  Adicione uma nova tabela – TipoEmpresa  Save All e nomeie a
Gerenciamento de Projetos
Adicione uma nova tabela – TipoEmpresa
Save All e nomeie a tabela TipoEmpresa

Programação em C#

13

Gerenciamento de Projetos  Server Explorer:
Gerenciamento de Projetos
Server Explorer:

Programação em C#

14

Gerenciamento de Projetos  Podemos ter cadastrados vários tipos de empresas (Empresas Clientes, Fornecedores, Representantes, ...
Gerenciamento de Projetos
Podemos ter cadastrados vários 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.
Programação em C#
15
Gerenciamento de Projetos  Abra o Diagram1.  Clique com o botão direito sobre o diagrama
Gerenciamento de Projetos
Abra o Diagram1.
Clique com o botão direito sobre o diagrama e
escolha a opção Add Table.
Adicione a tabela TipoEmpresa.
Após adicionada a tabela, note que em ambas
possuímos o campo TipoID – int.
Para fazer um relacionamento é necessário
que os campos sejam do mesmo tipo.

Programação em C#

16

Gerenciamento de Projetos  Para fazer o relacionamento, clique em TipoID na TipoEmpresa e com o
Gerenciamento de Projetos
Para fazer o relacionamento, clique em TipoID
na TipoEmpresa e com o botão 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.

Programação em C#

17

Gerenciamento de Projetos  Um relacionamento é normalmente feito entre uma chave primária e uma estrangeira.
Gerenciamento de Projetos
Um relacionamento é normalmente feito entre
uma chave primária e uma estrangeira.
É exibida a janela Foriegn Key Relationship
que permite maiores alterações.
Clique em OK sem alterar seus campos.
O relacionamento criado é do tipo um-para-
varios, ou seja, pode-se ter varias empresas
com um mesmo tipo e cada empresa só pode
ter um tipo.

Programação em C#

18

Gerenciamento de Projetos
Gerenciamento de Projetos

Programação em C#

19

Gerenciamento de Projetos  Save All.  Vamos adicionar alguns dados nas tabelas.  Primeiro na
Gerenciamento de Projetos
Save All.
Vamos adicionar alguns dados nas tabelas.
Primeiro na tabela TipoEmpresa, já que
criamos um relacionamento não podemos ter
uma empresa sem tipo.
Clique com o botão direiro em TipoEmpresa e
selecione Show Table Data.
Não é necessário adicionar valores em TipoID.
Auto-numerável.

Programação em C#

20

Gerenciamento de Projetos  A tabela TipoID fica assim:  Adicione um novo form ao projeto
Gerenciamento de Projetos
A tabela TipoID fica assim:
Adicione um novo form ao projeto chamado
CadastroEmpresas.
Gerenciamento de Projetos  A tabela TipoID fica assim:  Adicione um novo form ao projeto

21

Gerenciamento de Projetos  No menu Data clique em Show Data Sources.  Clique em Add
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.

Programação em C#

22

Gerenciamento de Projetos  A próxima tela possibilita gravar a string de conexão para um arquivo
Gerenciamento de Projetos
A próxima tela possibilita gravar a string de
conexão para um arquivo de configuração.
É recomendado pois facilita o processo de
disponibilização da aplicação.
Se a aplicação for instalada em outro
computador e precisar usar um outro caminho
para acessar o BD, basta mudar a string de
conexão no arquivo de configuração.
Salve a string.

Programação em C#

23

Gerenciamento de Projetos  Agora pode-se selecionar quais tabelas, procedures, etc, queremos utilizar na aplicação. 
Gerenciamento de Projetos
Agora pode-se selecionar quais tabelas,
procedures, etc, queremos utilizar na
aplicação.
Selecione as duas tabelas e clique em finish.
Gerenciamento de Projetos  Agora pode-se selecionar quais tabelas, procedures, etc, queremos utilizar na aplicação. 

24

Gerenciamento de Projetos  Dê um duplo clique sobre o ProjetoDataSet na SolutionExplorer para abrir o
Gerenciamento de Projetos
Dê um duplo clique sobre o ProjetoDataSet na
SolutionExplorer para abrir o mesmo.

Programação em C#

25

Gerenciamento de Projetos  O DataSet possui uma representação das tabelas do BD.  Ele tem
Gerenciamento de Projetos
O DataSet possui uma representação das
tabelas do BD.
Ele tem métodos que permitem a manipulação
dos registros no BD.
Clique com o botão direito sobre o
Fill,GetData() de TipoEmpresa e selecione
Preview Data.
Na janela aberta clique em Preview.
O conteúdo da tabela é mostrado.

Programação em C#

26

Gerenciamento de Projetos  Isto significa que o método está recuperando os dados adequadamente.  Clique
Gerenciamento de Projetos
Isto significa que o método está recuperando
os dados adequadamente.
Clique em close.
No Data Sources clique com o botão esquerdo
em Empresas e selecione Details.
Clique novamente em Empresas e arraste-a
para o formulário CadastroEmpresa.

Programação em C#

27

Gerenciamento de Projetos  Os campos são adicionados. Assim como 5 controles no projeto: • projetosDataSet
Gerenciamento de Projetos
Os campos são adicionados. Assim como 5
controles no projeto:
• projetosDataSet
• empresasBindingSource
• empresasTableAdapter
• empresasBindingNavigator
• tableAdapterManager
Estes são os controles responsáveis por
manipular os dados no BD.

Programação em C#

28

Gerenciamento de Projetos
Gerenciamento de Projetos

29

Gerenciamento de Projetos  Verifique que foi adicionado código no formulário CadastroEmpresas.  Duplo clique no
Gerenciamento de Projetos
Verifique que foi adicionado código no
formulário CadastroEmpresas.
Duplo clique no Form1 e arraste um botão.
Adicione o evento ao Button1 e o seguinte
código:
CadastroEmpresas frm = new CadastroEmpresas();
frm.Show();
Execute a aplicação.
Clique no sinal de adição na barra do
CadastroEmpresas e adicione valores de teste.

Programação em C#

30

Gerenciamento de Projetos  Ao fechar os dados ainda não estão sendo salvos.  Na Solution
Gerenciamento de Projetos
Ao fechar os dados ainda não estão sendo
salvos.
Na Solution Explorer clique em
ControleProjetos. Alguns botões acima
aparecerão.
Clique em Show All Files.
Na pasta bin\debug estão os arquivos
compilados na nossa aplicação.

Programação em C#

31

Gerenciamento de Projetos  Toda vez que compilamos e executamos nossa aplicação esses arquivos são substituidos
Gerenciamento de Projetos
Toda vez que compilamos e executamos nossa
aplicação esses arquivos são substituidos pelo
resultado da compilção feita nos arquivos do
código fonte.
Perceba que nesta pasta existe um arquivo de
BD.
Quando executamos e adicionamos registros
esse BD é modificado, não o que esta na pasta
de projetos
É por isto que os dados são modificados.
Programação em C#
32
Gerenciamento de Projetos  Temos 2 BDs, manipulamos em um quando executamos e usamos outro para
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 não seja copiado para
a pasta Debug.
Só que para a aplicação funcionar é necessária
uma mudança no arquivo app.config.

Programação em C#

33

Gerenciamento de Projetos  Deve-se fornecer o caminho completo do BD.  Basta clicar no BD
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
aplicação. Desta vez os dados persistem.

Programação em C#

34

Gerenciamento de Projetos  Este problema aconteceu porque estamos em ambiente de produção, adicionamos um BD
Gerenciamento de Projetos
Este problema aconteceu porque estamos em
ambiente de produção, adicionamos um BD
direto no projeto.
Quando se tem um servidor específico rodando
um BD este problema não acontece.
Neste caso, será preciso informar o IP do
servidor, o nome do BD, o login e senha na
string de conexão.

Programação em C#

35

Gerenciamento de Projetos  O último ajuste será feito no form CadastroEmpresas.  Para cadastrar uma
Gerenciamento de Projetos
O último ajuste será feito no form
CadastroEmpresas.
Para cadastrar uma empresa é necessário
informar um número no campo Tipo ID, por
causa do relacionamento.
O usuário não sabe o código do tipo da
empresa que ele esta cadastrando. Sabe o
tipo, mas não o código.

Programação em C#

36

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

Programação em C#

37

Gerenciamento de Projetos  Foram adicionados os controles tipoEmpresaBindingSource e tipoEmpresaTableAdapter para manipular os dados da
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.

Programação em C#

38

Gerenciamento de Projetos  Na opção Selected Value selecione TipoID em empresaBindingSource.  Isto relaciona o
Gerenciamento de Projetos
Na opção Selected Value selecione TipoID em
empresaBindingSource.
Isto relaciona o valor selecionado da tabela
TipoEmpresa com o campo TipoID da tabela
Empresas.
Execute a aplicação.

Programação em C#

39