Ado

41
ADO.NET MODELO DE OBJECTOS

description

 

Transcript of Ado

Page 1: Ado

ADO.NET

MODELO DE OBJECTOS

Page 2: Ado

ADO.NET é um conjunto de classes cujas funcionalidades permitem conexões a fontes de dados e a sua manipulação.

É especificamente desenhado para conexões a dados relacionais num ambiente desconectado, sendo por isso apropriado para aplicações WEB baseadas na Internet.

Usa o formato XML para a transferência de dados entre a aplicação e a fonte de dados.

Page 3: Ado
Page 4: Ado
Page 5: Ado
Page 6: Ado

OBJECT MODEL ADO.NET

Page 7: Ado

ADO.NET MODELO DE PROGRAMAÇÃO

CARACTERÍSTICAS:

1. Disponibiliza uma arquitectura de dados (offline) desconectada suportando ainda operações conectadas.

2. Estritamente integrado com a linguagem XML (Extended Markup Language)

3. Interacção com várias fontes de dados através duma representação de dados comuns

Page 8: Ado

Dados conectados/desconectados

Dados conectadosEste ambiente possibilita a leitura sequencial dos dados e ainda a execução de comandos na fonte de dados. As classes conectadas incluem: Connection, Command, DataReader, Transaction,

ParameterCollection, e Parameter. Dados desconectados

O ambiente desconectado permite a extracção de dados dum fonte, a sua manipulação e ainda a sua reconciliação (actualização) com a fonte. Fazem parte deste ambiente as classes:

DataSet, DataTable, DataColumn, DataRow, constraint, DataRelationship, and DataView classes.

Page 9: Ado
Page 10: Ado

DATA ADAPTER

O DataAdapter fazer a ponte entre as classes desconectadas e as fontes de dados. Ele permite extrair dados duma BD para um DataSet e a actualização da BD com as alterações registadas no Dataset

Page 11: Ado

Classes ADO.NET

Page 12: Ado

DATA PROVIDERS

Um .NET data provider conecta a uma fonte de dados e executa comandos quer para extrair dados, quer para actualizá-los

Page 13: Ado

Objectos ADO.NETCONECTADOS

Connection Mantém a informação necessária para a conexão a uma BD através da connection string. Esta contém o nome da fonte de dados e sua localização, provider, autorizações e outras definições.

O objecto connection dispôe de métodos para abrir e fechar uma conexão a uma BD, executar uma transacção etc…

System.Data.SqlClient.SqlConnection

System.Data.OleDb.OleDbConnection

Page 14: Ado

Connection - Propriedades

Member Description

ConnectionString Uma string com as definições da ligação. Estas definições “nome=valor” incluem informações sobre o utilizador, a base de dados e a sua localização etc…

ConnectionTimeout Tempo de espera até ser disparada uma excepção numa tentativa falhada de abertura de uma fonte de dados.

Database O nome da base de dados a ser usada assim que a ligação for aberta. Esta propriedade pode ser alterada com o método ChangeDatabase().

State Estado da ligaçao.Open ou Closed.

Page 15: Ado

ConnectionString - ParâmetrosParameter Description

AttachDBFilename / Initial File Name

Usado apenas para ligação a bases de dados attachable.Exemplo:*.mdf

Connect Timeout / Connection Timeout

Tempo de espera por uma ligação até que o servidor dê a tentativa como falhada gerando uma erro.Default=15s e infinito=0

Data Source / Server / Address / Addr / Network Address

O nome do servidor ou endereço de rede onde está a BD. Utiliza-se o valor LocalHost para o computador corrente.

Initial Catalog / Database

O nome da BD

Integrated Security / Trusted_Connection

Quando o valor está definido para true ou SSPI o .NET provider tenta ligar-se à fonte de dados usando a segurança integrada do Windows.

Default=False;

Persist Security Info

Quando o seu valor é definido como false (default) toda a informação sensível à segurança, tal como a palavra-chave, é removida da connection string assim que a ligação é estabelecida.

User ID Conta de Utilizador

Password/Pwd PassWord

Page 16: Ado

Connection - Métodos

Member Description

BeginTransaction() Inicia, programaticamente,uma transacção.

ChangeDatabase() Define a BD a ser usada nas operações seguintes

CreateCommand() Cria um objecto comando que utilizará esta ligação..

Open() and Close() Conecta/Desconecta da BD

Page 17: Ado

SQL Server connection string

Parâmetros obrigatórios:Servidor:

Data Source= nome_do_servidor

Base de dados:Initial Catalog=nome_da_bd

Informação de autenticação:SQL Server authentication

id=userid ; password=password OuOu Autenticação integrada do Windows

Integrated Security=SSPI

Page 18: Ado

SQL Server connection string

SqlConnection con = new SqlConnection( "Data Source= localhost; Initial Catalog= Northwind;

user id= userid;

password= pswd“ );

SqlConnection con = new SqlConnection("Data Source= localhost;

Initial Catalog= Northwind;

Integrated Security= SSPI");

Page 19: Ado
Page 20: Ado

OLE DB connection string

Normalmente uma connection string OLEDB necessita os seguintes parâmetros:

1. Data Source (localhost –para o computador local);

2. Initial Catalog (nome da base de dados);

3. Autenticação (id e password qd definido);

4. Provider (indica qual o OLEDB provider em uso).

Page 21: Ado

Ole db – connection string

Versão sqlserver <7.0 con as OleDbConnection = new OleDbConnection ( "Data Source= localhost ;

Initial Catalog= Northwind;user id= sa;password= secret;Provider= SQLOLEDB")

Access: con as OleDbConnection = new OleDbConnection ( "Data Source= localhost;

Initial Catalog= c:\Nortwdind.mdb;Provider= Microsoft.Jet.OLEDB.4.0");

Page 22: Ado
Page 23: Ado

Objectos ADO.NETCONECTADOS

Executa comandos SQL ou stored procedures contra os dados de uma fonte.

Inclui uma colecção de parâmetros (ParameterCollection), que possibilitam a utilização de declarações SQL parametrizáveis.

CommandCommand

Page 24: Ado

Command - Propriedades

Propriedade Descrição

CommandText Contém a declaração SQL, nome do Stored Procedure ou nome da tabela.

CommandTimeout Período de tempo (segs) de espera pela execução de um comando até ser considerado uma falha e ser disparada uma excepção. Default = 30seg.

CommandType

Indica o formato da propriedade CommandText: Text - para um comando SQL StoredProcedure - para um Stored Procedure; Table Direct - para tabela

Connection A conexão usada pelo comando. Esta deve estar aberta antes da execução do comando.

Parameters

Colecção dos parametros de input, output ou bidireccionais. Usados para consultas parametrizadas ou chamadas a stored procedures.

Transaction Transacção de que o comando faz parte.

UpdatedRowSource Especifica o modo como o comando actualiza a fonte de dados.

Page 25: Ado

Command - Métodos

Método Descrição

Cancel() Tenta parar um comando em execução. Para se invocar este método é necessário iniciar o commando numa nova thread.

CreateParameter() Cria um novo objecto Parameter, que pode ser adicionado à colecção Command.Parameters

ExecuteReader() Executa o comando e devolve um cursor, apenas de leitura e sequencial, na forma de um DataReader.

ExecuteNonQuery()

Executa o comando e devolve o número de linhas afectadas. Utilizado normalmente nas declarações de actualização, eliminação e inserção de registos. UPDATE, DELETE, 0u INSERT

ExecuteScalar() Executa o comando e devolve um único valor. Usado em funções de agregação.

Prepare() Se o comando for do tipo Stored Procedure, este método pode ser usado para pré-compilar o comando na fonte de dados.

Page 26: Ado

Executar um Comando

Um comando pode ser executado de 3 modos:

1. Cmd.ExecuteReader() – retorna um dataReader;

2. Cmd.ExecuteNonQuery() – Update, delete e Insert ;

Dos comandos NonQuery os mais conhecidos são os comandos UPDATE, DELETE e INSERT. Podem ser no entanto criados outros comandos para definição de dados tais como create, alter e Drop tables, constrians e relations

3. Cmd.ExecuteScalar() – Função de Agregação.

Page 27: Ado

EXECUTAR UM COMANDO QUE RETORNA UM VALOR

O método ExecuteScalar() devolve um único valor. Executando a consulta será o primeiro valor na primeira coluna da primeira linha.

Normalmente são utilizadas para devolver um resultado de uma função de agregação que opera num subconjuto de rows.

Sintaxe:SELECT aggregate_expression FROM tables [WHERE search_condition]

[ORDER BY order_expression ASC | DESC]

Page 28: Ado

Objectos ADO.NETCONECTADOS

Permite o acesso a uma fonte de dados para leitura sequencial.

É instanciado a partir dum objecto Command.

DataReader DataReader

Page 29: Ado

Objectos ADO.NETCONECTADOS

Permite o uso de parâmetros em consultas e storedProcedures.

Esta classe está incluída na colecção ParametersCollection do objecto Command.

Suporta parâmetros de input and output bem como valores de retorno de stored procedures.

Parameter Parameter

Page 30: Ado

Objectos ADO.NETCONECTADOS

Faz a ponte entre a fonte de dados e o Dataset ou classes DataTable.

Através do método Fill extrai dados da fonte usando o seu comando select e; através do método Update reconcilia os dados do Dataset ou tables que são dados desconectados, com a Fonte de dados.

A classe CommandBuilder pode gerar os comandos de actualização para situações pouco complexas.

DataAdapter DataAdapter

Page 31: Ado

DATADAPTER

Page 32: Ado
Page 33: Ado

Objectos ADO.NETCONECTADOS

Permite criar transacções num objecto connection.

Deste modo várias operações sobre os dados poderão ser agrupadas numa só unidade de trabalho que pode ser rollback ou commit.

.

Transaction Transaction

Page 34: Ado

Objectos ADO.NETDESCONECTADOS

Suporta os dados desconectados viabilizando uma manipulação consistente desses dados.

É essencialmente uma base de dados relacional em memória, servindo como contentor para os objectos: DataTable, DataColumn, DataRow, Constraint, e DataRelation.

É num formato XML que o Dataset é serializado e transportado.

Um Dataset pode ser acedido e manipulado quer através de métodos e propriedades do Dataset, quer através de XML.

A classe XMLDataDocument representa e sincroniza os dados relacionais do objecto DataSet com o DOM(XML Document Object Model).

DATASETDATASET

Page 35: Ado

DATASET

Page 36: Ado

Objectos ADO.NETDESCONECTADOS

Permite que os dados desconectados possam ser examinados e modificados através de uma colecção de classes DataColumn e DataRow.

As tabelas permitem o uso de constrains – restrições- tais como foreign Keys e Unique.

DATATABLEDATATABLE

Page 37: Ado

Objectos ADO.NETDESCONECTADOS

Corresponde a uma coluna numa tabela.

Esta classe armazena metadados sobre a estrutura da coluna e restrições.

Estes metadados e constrains definem a estrutura da tabela.

É possível a criação de colunas baseadas em expressões com basenos valores de outras colunas.

DataColumn DataColumn

Page 38: Ado

Objectos ADO.NETDESCONECTADOS

Corresponde a uma linha de uma tabela e permite a consulta e actualização dos dados dessa tabela.

Uma tabela expõe objectos DataRow através da colecção DataRowCollection.

A classe DataRow regista as alterações dos dados contidos nas suas colunas, guardando ambos os valores: valor original e valor corrente o que permite quer a reconciliação de dados com a fonte que o cancelamento dessas alterações.

DataRow DataRow

Page 39: Ado

Objectos ADO.NETDESCONECTADOS

As restrições Unique e foreign Key podem ser definidas permitindo a integridade dos dados.

Constraint Constraint

Page 40: Ado

Objectos ADO.NETDESCONECTADOS

Permite estabelecer relações entre tabelas dum mesmo DataSet.

Relaciona colunas entre a tabela “parent” e a tabela “child”, permitindo a integridade referencial entre ambas através de actualizações e eliminações em cascata bem como a navegação relacional entre essas tabelas.

DataRelation DataRelation

Page 41: Ado

Objectos ADO.NETDESCONECTADOS

Permite que os dados de um Dataset ou Table possam ser vistos de modo diferente através da aplicação de ordenações baseadas em valores de colunas e filtros baseados num determinado critério.

DataView DataView