Ado

Preview:

DESCRIPTION

 

Citation preview

ADO.NET

MODELO DE OBJECTOS

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.

OBJECT MODEL ADO.NET

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

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.

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

Classes ADO.NET

DATA PROVIDERS

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

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

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.

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

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

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

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");

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).

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");

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

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.

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.

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.

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]

Objectos ADO.NETCONECTADOS

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

É instanciado a partir dum objecto Command.

DataReader DataReader

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

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

DATADAPTER

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

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

DATASET

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

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

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

Objectos ADO.NETDESCONECTADOS

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

Constraint Constraint

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

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