Aula 7

Transcrição

Aula 7
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Linguagem de Programação 3
Acesso a Banco de Dados usando C#
Prof. Mauro Lopes
Linguagem de Programação 3 – Prof. Mauro Lopes
1 - 26
31
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Objetivos
• Nesta aula iremos dar continuidade aos elementos de
programação da Linguagem C#. Iremos aqui apresentar
o ADO.NET. Esta importante parte da tecnologia .NET
permite que as diversas aplicações desenvolvidas
usando a plataforma tenha acesso ao recurso de
persistência de dados. Ao final desta aula, o aluno
poderá implementar pequenas aplicações que envolvem
os conceitos abordados. Boa aula a todos.
Linguagem de Programação 3 – Prof. Mauro Lopes
2 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Plano de Aula
• ADO.NET:
– O que é ?
– Arquitetura
– Providers
– Core Objects
– Modo Conectado e Desconectado
– Principais Classes do ADO.NET
• MySql ADO.NET Provider
Linguagem de Programação 3 – Prof. Mauro Lopes
3 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
O que é ?
• O ADO.NET é uma evolução do ADO (ActiveX Data
Objects) que foi utilizado até o Visual Basic 6;
• O ADO.NET foi construído sem nenhum reaproveitamento
da tecnologia ADO;
• O ADO.NET permite interagir com bancos de dados
relacionais e outras fontes de dados;
• O ADO.NET é a tecnologia que as aplicações .NET
usam para se comunicar com bancos de dados, caso
precisem adicionar, atualizar, apagar ou recuperar
registros;
• O ADO.NET possui interfaces e classes concretas que
provêm todas essas funcionalidades;
Linguagem de Programação 3 – Prof. Mauro Lopes
4 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
O que é ?
• Um framewrok orientado a objetos que permite a sua
aplicação interagir com um sistema de Banco de
Dados.
Linguagem de Programação 3 – Prof. Mauro Lopes
5 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Arquitetura
• A arquitetura do ADO.NET está dividida em dois
grupos:
Manager Providers (provedores gerenciados)
 Content Components (componentes de conteúdo)
• Managed Providers:

•
•
se encarregam do acesso a dados, porém não armazenam os mesmos,
fazendo ligação direta com a fonte de dados;
Neste grupo temos classes de conexão, transação, execução de
comandos (Command) e leitura de dados (DataReader);
• Content Components:
•
•
responsável por armazenar e manipular os dados em memória, porém
eles não sabem de sua origem e nem o que significam;
neste grupo temos as classes DataSet, DataTable, DataRow,
DataColumn, etc
Linguagem de Programação 3 – Prof. Mauro Lopes
6 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Arquitetura
• Arquitetura ADO.NET, onde a parte referente ao
DataSet representa os Content Components.
Managed Providers
Linguagem de Programação 3 – Prof. Mauro Lopes
7 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Providers
• Os providers do ADO.NET são pacotes de classes que
possibilitam a interação com uma fonte de dados
específica, como por exemplo, com uma base SQL Server;
• Interfaces principais: IDbConnection, IDbCommand e
IDbDataReader, IDbDataTransaction e IDbDataAdapter;
• A partir destas interfaces qualquer fabricante de banco de
dados pode criar componentes (um pacote) que
implementam as mesmas para permitir o acesso ao seu
SGBD;
• Cada pacote possui um prefixo que indica qual a fonte de
dados que este pacote suporta;
Linguagem de Programação 3 – Prof. Mauro Lopes
8 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Providers
• Core namespace: System.Data
• .NET Framework data providers:
Data Provider
Namespace
SQL Server
System.Data.SqlClient
OLE DB
System.Data.OleDb
ODBC
System.Data.Odbc
Oracle
System.Data.OracleClient
Linguagem de Programação 3 – Prof. Mauro Lopes
9 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
ADO.NET Core Objects
Classe
Descrição
Connection
é responsável por estabelecer uma ligação com a fonte de
dados específica.
Command
é utilizado para executar uma instrução SQL.
DataReader
faz leitura de dados forward-only e read-only de uma fonte de
dados.
DataAdapter
Popula a DataSet e provê atualizações em uma fonte de
dados.
DataTable
representa uma ou mais tabelas de dados em memória.
DataSet
trabalha com um conjunto de dados em cache não
conectados ao banco de dados, ele não depende da fonte
de dados e pode armazenar dados de múltiplas tabelas
Linguagem de Programação 3 – Prof. Mauro Lopes
10 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Providers e Core Objects
• Core Objects e Providers
Core
Objects
SQL Server
Provider
OLE DB
Provider
Oracle
Provider
ODBC
Provider
Connection
SqlConnection
OleDbConnection
OracleConnection
OdbcConnection
Command
SqlCommand
OleDbCommand
OracleCommand
OdbcCommand
DataReader
SqlDataReader
OleDbDataReader
OracleDataReader
OdbcDataReader
DataAdapter
SqlDataAdapter
OleDbDataAdapter
OracleDataAdapter
OdbcDataAdapter
Linguagem de Programação 3 – Prof. Mauro Lopes
11 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Modo Conectado e Desconectado
• Existem dois modelos de se trabalhar a ligação da
aplicação com o banco de dados no ADO.NET: O
modelo conectado e o modelo desconectado;
• No modelo conectado o banco de dados trabalha de forma
online, ou seja, em cada operação CRUD (Create,
Retrieve, Update e Delete) realizada será aberta uma
conexão com o banco de dados, e esta conexão será
fechada após o seu uso;
• No modelo desconectado os dados serão manipulados
sem a necessidade de utilizar os serviços de rede a
todo o momento. No modelo desconectado é comum o
uso dos objetos SqlConnection, o DataSet e o
SqlDataAdapter;
Linguagem de Programação 3 – Prof. Mauro Lopes
12 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Modo Conectado e Desconectado
• Modo Conectado
• Modo Desconectado
Linguagem de Programação 3 – Prof. Mauro Lopes
13 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Modo Conectado e Desconectado
• Modo Conectado
A
P
L
I
C
A
Ç
Ã
O
ADO.NET
Linguagem de Programação 3 – Prof. Mauro Lopes
14 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Modo Conectado e Desconectado
• Modo Desconectado
ADO.NET
A
P
L
I
C
A
Ç
Ã
O
Linguagem de Programação 3 – Prof. Mauro Lopes
15 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Principais Classes do ADO.NET
•
Classe Connection
•
– Propriedades
• ConnectionString
• State
– Métodos
• BeginTransaction( )
• Close( )
• Open( )
Linguagem de Programação 3 – Prof. Mauro Lopes
Classe Command
– Propriedades
• CommandText
• CommandType
• Connection
• Parameters
• Transaction
– Métodos
• ExecuteNonQuery( )
• ExecuteReader( )
• ExecuteScalar( )
•
Classe DataReader
– Propriedades
• FieldCount
• HasRows
• Item
• IsClosed
– Métodos
• Close( )
• Read( )
16 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Principais Classes do ADO.NET
•
Classe DataAdapter
–
–
•
Propriedades
• DeleteCommand
• InsertCommand
• SelectCommand
• UpdateCommand
Métodos
• Fill( )
• Update( )
Classe DataRow
–
–
Propriedades
• Item
• RowState
Métodos
• AcceptChanges( )
• Delete( )
• GetChildRows( )
• GetParentRow( )
• RejectChanges( )
• SetAdded( )
• SetModified( )
Linguagem de Programação 3 – Prof. Mauro Lopes
•
Classe DataSet
–
–
Propriedades
• Relations
• Tables
Métodos
• AcceptChanges( )
• Clear( )
• GetChanges( )
• Load( )
• ReadXml( )
• RejectChanges( )
• Reset( )
• WriteXml( )
•
Classe DataTable
–
–
Propriedades
• Columns
• DefaultView
• PrimaryKey
• Rows
• TableName
Métodos
• AcceptChanges( )
• Clear( )
• GetChanges( )
• ImportRow( )
• Load( )
• NewRow( )
• ReadXml( )
• RejectChanges( )
• Reset( )
• Select( )
• WriteXml( )
17 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
MySql ADO.NET Provider
• O ADO.NET provê uma arquitetura orientada a objetos
para comunicação entre a aplicação .NET e uma fonte
de dados;
• A fonte de dados pode ser qualquer uma que API dê
suporte. Mas comumente esta fonte é um banco de
dados gerenciado por um SGBD;
• Veremos aqui como usar uma fonte MySql com o .NET.
Data
Source
Connection
Object
(ADO.Net)
Linguagem de Programação 3 – Prof. Mauro Lopes
Data
Adaptor
Dataset
(Local)
Application
18 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Obtendo o MySqlConnector.NET
• Precisamos do MySqlConnetor.NET para permitir que
nossa aplicação .NET tenha acesso a base de dados no
padrão do MySql;
• Primeiro devemos fazer download no site:
http://dev.mysql.com/downloads/connector/net/6.0.html
• Executar a instalação;
• Após a instalação criar uma referência do
MySqlConnector na aplicação .NET;
• Para isto, basta com clicar com o botão direito sobre a
Aplicação .NET (References) e escolher a opção Add
Reference;
Linguagem de Programação 3 – Prof. Mauro Lopes
19 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Adicionando o MySqlConnector.NET
Adicionando a Referência
Selecionando a DLL MySql.Data.dll ao Projeto
Linguagem de Programação 3 – Prof. Mauro Lopes
20 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
A API do MySql ADO.NET Provider
MySqlConnection cria uma conexão com um banco
de dados MySQL;
MySqlCommand permite a execução de qualquer
comando sql junto ao banco de dados MySql;
MySqlDataReader fornece um acesso rápido ao
banco de dados MySql. Este acesso é forwardonly e read-only;
MySqlDataAdapter serve como uma interface entre
as classes de acesso a dados do MySQL com o
Microsoft DataSet.
MySqlParameter usado para armazenar parâmetros
dinâmicos para um MySqlCommand;
MySqlTransaction usado para representar uma
transação com o MySQL.
Linguagem de Programação 3 – Prof. Mauro Lopes
21 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Usando o MySqlConnector.NET
1.
2.
3.
4.
Linguagem de Programação 3 – Prof. Mauro Lopes
Adicionar na aplicação o namespace:
using MySql.Data.MySqlClient;
Toda ação do banco de dados deve estar dentro de um
bloco try/catch;
Neste bloco de código a variável con foi definida no
espaço do formulário;
Realizamos a abertura do canal de comunicação no bloco
try e fechamos no finally;
22 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Usando o MySqlConnector.NET
• Vamos codificar um pouco !!!
– Vamos realizar o acesso a base de dados MySql para a tela criada
anteriormente na aula sobre Aplicações Gráficas.
Linguagem de Programação 3 – Prof. Mauro Lopes
23 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Perguntas
Página do Professor Mauro:
http://www.dai.ifma.edu.br/~mlcsilva
Linguagem de Programação 3 – Prof. Mauro Lopes
24 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Próxima Aula...
• Aplicação MVC usando C#.
Linguagem de Programação 3 – Prof. Mauro Lopes
25 -26
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA
Referências
• Materiais avulsos da Internet e o livro C#: Guia
do Programador, Joel Saade - Editora Novatec,
687 páginas.
Linguagem de Programação 3 – Prof. Mauro Lopes
26 -26

Documentos relacionados

Aula 13

Aula 13 INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA

Leia mais

Aula 12

Aula 12 Providers • Os providers do ADO.NET são pacotes de classes que possibilitam a interação com uma fonte de dados específica, como por exemplo, com uma base SQL Server ou MySql; • Interfaces principai...

Leia mais

Programação Extrema

Programação Extrema Jude/ArgoUML Dentre outras ferramentas que serão discutidos com os alunos.

Leia mais

Programação Extrema

Programação Extrema Modelo de Classes Modelo de Dados Processos de Negócio Manual do Usuário Acompanhamento diário Acompanhamento do Projeto Fotos

Leia mais