SlideShare uma empresa Scribd logo
1 de 12
ADO. NET – Situações práticas
Hélder Oliveira helderjmo@gmail.com
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• Ligação à Base de Dados
• Comandos
• Acesso a dados “Connected”
• Acesso a dados “Disconnected”
• Actualização dos dados (“Disconnected”)
• DataSets através do assistente
• Estruturas de Dados sem SGBD
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• Estabelecimento de ligação:
SqlConnection connection = new SqlConnection({connection
string});
• A “connection string” deverá ser sempre declarada de forma
centralizada - através do ficheiro de configuração da
aplicação ou de uma simples variável estática na class
Program
• A conexão deverá ser sempre aberta e fechada, antes e
depois do acesso aos dados da base de ados,
respectivamente.
connection.Open();
// (...)
connection.Close();
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• A execução de comandos para Bases de Dados dos tipo SQL
Server deve ser implementada através da instanciação da
classe SqlCommand.
Exemplo:
SqlCommand command = new
SqlCommand("SELECT * FROM clientes WHERE id_cliente=" + idclient, connection);
• Este comando permite essencialmente a execução de queries
SQL (SELECT, INSERT, UPDATE, DELETE) e de Stored
Procedures.
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• A execução do comando deverá ser efectuada segundo um
dos seguintes métodos:
– ExecuteNonQuery, ExecuteScalar, ExecuteReader ou
ExecuteXmlReader
• Cada método deverá ser executado de acordo com a natureza
da operação que se pretende realizar
• A fim de introduzir alguma simplicidade na execução de
comandos em Bases de Dados, a Microsoft introduziu a
biblioteca SqlHelper – que poderá ter-se em conta sempre
que há necessidade de efecutar operações que não exijam
elevados graus de felxibilidade e complexidade.
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• Este acesso inicia-se com a execução do método
ExecuteReader
SqlDataReader dr = command.ExecuteReader();
dr.Read();
lblID.Text = dr["id_cliente"].ToString();
lblNome.Text = dr["nome"].ToString();
lblMorada.Text = dr["morada"].ToString();
• A leitura de cada registo é realizada através do método Read
da classe SqlDataReader antes instanciada
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• Este tipo de acesso requer desde logo a intanciação de uma
estrutura em memória capaz de acolher os dados: um
DataSet:
SqlConnection connection = new
SqlConnection(Program.connectionString);
connection.Open();
da = new SqlDataAdapter("SELECT * FROM Produtos", connection);
ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
connection.Close();
• A transição dos dados entre a memoria secundária e a
memória primária é garantida através de um objecto do tipo
DataAdapter. O procedimento Fill do DataAdapter preenche o
DataSet antes intanciado
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• Depois de manipulados os dados em memória (DataSet), a
transição destas mudanças para as correpondentes estruturas
físicas efectua-se através do comando Update do
DataAdapter:
SqlCommandBuilder cmd = new SqlCommandBuilder(da);
DataSet dsChanges = ds.GetChanges();
if (dsChanges != null)
{
da.Update(dsChanges);
ds.AcceptChanges();
}
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• Os registos que contém as mudanças efectuadas ao nível da
memória podem ser obtidos através do método
GetChanges, presente tanto em objectos do tipo DataSet
como DataTable
• A classe SqlCommandBuilder permite “gerar” no
DataAdapter instruções de Insert, Update ou Delete com
base no comando Select associado a esse mesmo
DataAdapter.
• Para limpar o registo de alterações no DataSet, deve-se
executar o método AcceptChanges
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• O Visual Studio permite a criação de DataSets de forma rápida e visual.
Ferramentas próprias permitem a criação de toda a estrutura do interesse da
aplicação automaticamente com base no sistema físico:
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• Esta ferramenta permite criar estruturas apropriadas que são
automaticamente convertidas em objectos (classes)
descendentes das “primitivas” especificadas pela plataforma
.NET (DataSet, DataTable, DataRow, etc)
• Incluí TableAdapters específicos
• Possibilita definir métodos especificos para consulta ou
manipulação da Base de Dados.
Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas
• Os DataSets e todos os objectos a ele associados permitem
criar estruturas de memória flexíveis e adaptáveis a uma vasta
variedade de problema
• São estruturas completamente independentes de qualquer
sistema de base de dados
• Permitem guardar e restaurar o seu estado e estrutura em
ficheiros XML
• Pode traduzir-se num meio fácil de guardar registos ou
estruturas de dados simples de forma bem estruturada e
relacional

Mais conteúdo relacionado

Mais procurados

Mais procurados (7)

Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
 
Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
 
Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3
 
Frameworks Ajax
Frameworks AjaxFrameworks Ajax
Frameworks Ajax
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Introducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionaisIntroducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionais
 
Seminário - NoSQL
Seminário - NoSQLSeminário - NoSQL
Seminário - NoSQL
 

Semelhante a Ado.net.exmplos.praticos

Semelhante a Ado.net.exmplos.praticos (20)

Ado.net
Ado.netAdo.net
Ado.net
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistencia
 
Aula1
Aula1Aula1
Aula1
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
2006 - ADONET.ppt
2006 - ADONET.ppt2006 - ADONET.ppt
2006 - ADONET.ppt
 
[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
programacao-c-banco-de-dados
programacao-c-banco-de-dadosprogramacao-c-banco-de-dados
programacao-c-banco-de-dados
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Python 04
Python 04Python 04
Python 04
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
 
Ado
AdoAdo
Ado
 
Servlets
ServletsServlets
Servlets
 

Mais de Hélder Oliveira (13)

Web services
Web servicesWeb services
Web services
 
Regex
RegexRegex
Regex
 
Pensa connoscoenssecundario
Pensa connoscoenssecundarioPensa connoscoenssecundario
Pensa connoscoenssecundario
 
Csharp.intro
Csharp.introCsharp.intro
Csharp.intro
 
Asp.net
Asp.netAsp.net
Asp.net
 
Asp.net.data
Asp.net.dataAsp.net.data
Asp.net.data
 
Apresentacao aula6-1
Apresentacao aula6-1Apresentacao aula6-1
Apresentacao aula6-1
 
Apresentacao aula5
Apresentacao aula5Apresentacao aula5
Apresentacao aula5
 
Apresentacao aula4
Apresentacao aula4Apresentacao aula4
Apresentacao aula4
 
Apresentacao aula3
Apresentacao aula3Apresentacao aula3
Apresentacao aula3
 
Apresentacao aula1
Apresentacao aula1Apresentacao aula1
Apresentacao aula1
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Live quiz
Live quizLive quiz
Live quiz
 

Ado.net.exmplos.praticos

  • 1. ADO. NET – Situações práticas Hélder Oliveira helderjmo@gmail.com
  • 2. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • Ligação à Base de Dados • Comandos • Acesso a dados “Connected” • Acesso a dados “Disconnected” • Actualização dos dados (“Disconnected”) • DataSets através do assistente • Estruturas de Dados sem SGBD
  • 3. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • Estabelecimento de ligação: SqlConnection connection = new SqlConnection({connection string}); • A “connection string” deverá ser sempre declarada de forma centralizada - através do ficheiro de configuração da aplicação ou de uma simples variável estática na class Program • A conexão deverá ser sempre aberta e fechada, antes e depois do acesso aos dados da base de ados, respectivamente. connection.Open(); // (...) connection.Close();
  • 4. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • A execução de comandos para Bases de Dados dos tipo SQL Server deve ser implementada através da instanciação da classe SqlCommand. Exemplo: SqlCommand command = new SqlCommand("SELECT * FROM clientes WHERE id_cliente=" + idclient, connection); • Este comando permite essencialmente a execução de queries SQL (SELECT, INSERT, UPDATE, DELETE) e de Stored Procedures.
  • 5. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • A execução do comando deverá ser efectuada segundo um dos seguintes métodos: – ExecuteNonQuery, ExecuteScalar, ExecuteReader ou ExecuteXmlReader • Cada método deverá ser executado de acordo com a natureza da operação que se pretende realizar • A fim de introduzir alguma simplicidade na execução de comandos em Bases de Dados, a Microsoft introduziu a biblioteca SqlHelper – que poderá ter-se em conta sempre que há necessidade de efecutar operações que não exijam elevados graus de felxibilidade e complexidade.
  • 6. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • Este acesso inicia-se com a execução do método ExecuteReader SqlDataReader dr = command.ExecuteReader(); dr.Read(); lblID.Text = dr["id_cliente"].ToString(); lblNome.Text = dr["nome"].ToString(); lblMorada.Text = dr["morada"].ToString(); • A leitura de cada registo é realizada através do método Read da classe SqlDataReader antes instanciada
  • 7. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • Este tipo de acesso requer desde logo a intanciação de uma estrutura em memória capaz de acolher os dados: um DataSet: SqlConnection connection = new SqlConnection(Program.connectionString); connection.Open(); da = new SqlDataAdapter("SELECT * FROM Produtos", connection); ds = new DataSet(); da.Fill(ds); dataGridView1.DataSource = ds.Tables[0]; connection.Close(); • A transição dos dados entre a memoria secundária e a memória primária é garantida através de um objecto do tipo DataAdapter. O procedimento Fill do DataAdapter preenche o DataSet antes intanciado
  • 8. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • Depois de manipulados os dados em memória (DataSet), a transição destas mudanças para as correpondentes estruturas físicas efectua-se através do comando Update do DataAdapter: SqlCommandBuilder cmd = new SqlCommandBuilder(da); DataSet dsChanges = ds.GetChanges(); if (dsChanges != null) { da.Update(dsChanges); ds.AcceptChanges(); }
  • 9. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • Os registos que contém as mudanças efectuadas ao nível da memória podem ser obtidos através do método GetChanges, presente tanto em objectos do tipo DataSet como DataTable • A classe SqlCommandBuilder permite “gerar” no DataAdapter instruções de Insert, Update ou Delete com base no comando Select associado a esse mesmo DataAdapter. • Para limpar o registo de alterações no DataSet, deve-se executar o método AcceptChanges
  • 10. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • O Visual Studio permite a criação de DataSets de forma rápida e visual. Ferramentas próprias permitem a criação de toda a estrutura do interesse da aplicação automaticamente com base no sistema físico:
  • 11. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • Esta ferramenta permite criar estruturas apropriadas que são automaticamente convertidas em objectos (classes) descendentes das “primitivas” especificadas pela plataforma .NET (DataSet, DataTable, DataRow, etc) • Incluí TableAdapters específicos • Possibilita definir métodos especificos para consulta ou manipulação da Base de Dados.
  • 12. Hélder Oliveira helderjmo@gmail.com ADO. NET – Situações práticas • Os DataSets e todos os objectos a ele associados permitem criar estruturas de memória flexíveis e adaptáveis a uma vasta variedade de problema • São estruturas completamente independentes de qualquer sistema de base de dados • Permitem guardar e restaurar o seu estado e estrutura em ficheiros XML • Pode traduzir-se num meio fácil de guardar registos ou estruturas de dados simples de forma bem estruturada e relacional