Buscar

Acesso a Dados usando ADO.NET

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Linguagem Programação II
Prof. Edson Batista de Sena
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
ADO.Net
Agenda
ADO .NET
Namespaces
Provedores de dados
DataSet
Exemplo Prático
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Definição
ADO .NET é a nova tecnologia para acesso a dados da plataforma .NET estando integrada ao  .NET Framework e oferecendo diversas classes que permitem realizar praticamente todas as tarefas relacionadas com o acesso e manutenção de dados.
ADO .NET oferece suporte a uma variedade de opções para desenvolvimento de soluções com acesso a dados que permitem a comunicação com qualquer fonte de dados, desde os já conhecidos gerenciadores de banco de dados relacionais (SGBD) como : SQL Server, MySQL, FireBird, Oracle, Sybase, Access, XML, arquivos textos, etc.
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Definição
É uma coleção de classes, interfaces, estruturas e enumerações que permitem acessar diversas fontes de dados
Não é um evolução do ADO
Não um conjunto de componentes ActiveX
É parte integrante do .NET e não um elemento externo
Trabalha com dados conectados e desconectados
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Acesso orientado a conexão ( .Net Providers)
É feita uma conexão a um BD, ocorre um interação por meio de query SQL, usando a conexão estabelecida.
A aplicação permanece conectada mesmo que não esteja usando os seus serviços.
Acesso desconectado (DataSet)
A aplicação se conecta automaticamente ao BD quando necessita interagir com o Banco
Desconecta automaticamente após a obtenção dos resultados
Buffer local de dados – dados copiados para a memória
Tipos de Acesso
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Provedores de Acesso a Dados
System.Data
A plataforma .NET criou essa classe com vários provedores de acesso de qualquer plataforma, com: SQL Server, Oracle, Access, etc.
Esses provedores pertencem à classe System.Data
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Provedores de dados
SQL SERVER
Other DB
Other DB
Oracle SERVER
SQL Server 7 ou superior System.Data.SqlClient
Oracle 8.1.7 ou superior System.Data.OracleClient
SQL Server e Oracle System.Data.Odbc
SQL Server 6.5 ou inferior Oracle , MySQL e DB2 System.Data.OldDb
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
DataSet
Este modo é conhecido como modo desconectado. 
O objeto DataSet veio para substituir com vantagens o objeto recordset (ADO) e, guarda poucas similaridades com o objeto recordset. Enquanto o objeto recordset representa uma coleção de tabelas de dados O objeto DataSet representa uma cópia do banco de dados em memória.
 
A classe DataSet é membro do namespace System.Data e representa o primeiro dos dois maiores componentes da arquitetura ADO.NET  os outros membros seriam os provedores Data .NET. 
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
DataSet
Podemos resumir os atributos do DataSet como segue:
É baseado em XML 
É um conjunto de dados em cache que não esta conectado ao banco de dados 
É independente da fonte de dados 
Pode armazenar dados em múltiplas tabelas que podem ser relacionadas 
Armazena múltipla versões de dados  para coluna e para cada linha em cada tabela 
O DataSet fornece as principais funcionalidades para criar aplicações para banco de dados desconectados , embora suporte também o modelo conectado através de leitores de dados (DataReader).
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Desenvolvendo uma aplicação Off Line usando DataSet
Para este exemplo utilizaremos um projeto windows form aplication, que vocês já estão acostumados a utilizar.
Agora que já temos um projeto criado, vamos incluir um banco de dados local para dar suporte à aplicação, para isso clique em Project e escolha a opção Add New Item.
Escolha o modelo Service-based Database;
Dê o nome de Cadastro.mdf;
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Exemplo Prático...
O assistente vai abrir a janela abaixo. Selecione o item DataSet e clique em Next;
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Na próxima janela, clique no botão Finish;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Você verá na janela Solution Explorer o banco de dados Cadastro.mdf criado;
Clique duas vezes sobre este arquivo para que a janela DataBase Explorer seja aberta exibindo a estrutura atual do banco de dados.
Será criado um DataSet chamado CadastroDataSet e o banco de dados Cadastro.mdf;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Vamos criar as tabelas Alunos, Cursos e Usuarios. Clique com o botão direito sobre a pasta Tables e clique em Add New Table;
Será aberto  um editor para que possamos informar os nomes e tipos de dados dos campos da tabela. Após definir estes valores devemos salvar a tabela com o nome apropriado. Abaixo temos a estrutura de cada tabela que devemos criar:
Tabela Alunos :
Campos: alunoid, nome, idade, email, cursoid e sexo.
Observe que alunoid é chave primária e possui a propriedade Identity Specification igual a Yes;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Tabela Cursos
Campos - cursoid e cursonome;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Tabela Usuarios
Campos : id, login, nome, email e senha;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
O diagrama mostrado na figura abaixo exibe o relacionamento entre as tabelas Alunos e Cursos e a tabela Usuarios usada para fazer o login;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Criando a tela de apresentação (Splash Screen)
Vamos alterar o nome do formulário Form1.cs para frmSplash.cs; para fazer isso selecione o formulário na janela Solution Explorer, e na janela de propriedades altere a propriedade File Name para: frmSplash.cs
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Vamos alterar as propriedades do formulário formSplash.cs na janela de propriedades conforme abaixo:
FormBorderStyle = None
StartPosition = CenterScreen
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Defina os controles conforme o leiaute abaixo:
Inclua os controles na seguinte ordem:- Panel; - No interior do Painel inclua um PicutreBox; - Atribua uma imagem ao controle; - Inclua o Progressbar na base do formulário;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Cadastro_Basico
{
 public partial class FrmSplash : Form
 {
 private bool aumenta = true;
 public FrmSplash()
 {
 InitializeComponent();
 }
 
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
private void timer1_Tick(object sender, EventArgs e)
 {
 if (progressBar1.Value < 100)
 {
 progressBar1.Value = progressBar1.Value + 2;
 }
 if (aumenta)
 this.Opacity += 0.02D;
 if (this.Opacity == 1)
 {
 aumenta = false;
 this.Close();
 }
 }
 
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
 private void FrmSplash_Load(object sender, EventArgs e)
 {
 timer1.Interval = 400;
 timer1.Tick += new EventHandler(this.timer1_Tick);timer1.Enabled = true;
 progressBar1.Value = 0;
 this.Opacity = 0;
 }
 }
}
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
O código faz o seguinte:Define um intervalo para o controle Timer de 400 milissegundos, habilitamos o Timer, definimos o valor inicial do ProgressBar igual a zero e a propriedade Opacity igual a zero;
No evento Tick do Timer estamos verificando se o controle ProgressBar possui um valor menor que 100 e acrescentamos o valor de 2 unidades;
Com isso a barra de progresso irá indicar um progresso até atingir o valor 100;
Ao mesmo tempo estamos incrementando a propriedade Opacity de forma causar um efeito visual de aparecimento progressivo do formulário na tela;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
No menu Project clique em Add Windows Form e altere o nome do formulário para frmLogin.cs clicando em Add;
Abra a janela Data Sources e arraste o data source Usuarios para o formulário;
Vamos excluir os objetos usuariosBindingNavigator , os TextBox para Id, login, email e senha conforme mostrado a seguir:
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Em seguida a partir da ToolBox inclua os controles : PictureBox, Button no formulário conforme o leiaute da figura a seguir:
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
No formulário acima incluímos uma imagem na PictureBox na sua propriedade Image. A propriedade SizeMode deve ser igual a StretchImage;
E como vamos exibir este formulário após o encerramento da tela de apresentação ?
Teremos que alterar o código do Program.cs de forma que o formulário de frmLogin() seja executado quando a aplicação iniciar.
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
1- Iniciamos a aplicação chamando o formulário de login
 2- No seu evento Load eu crio uma instância do formulário frmSplash() para exibir o formulário frmSplash()
 3- Após executar o código no formulário frmSplash() libera-se o recurso usado e escondemos o formulário de apresentação, assim o formulário de login surge triunfante...
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
1- Evento Load do formuláro frmLogin:
 private void frmLogin_Load(object sender, EventArgs e)         {             frmSplash f1 = new frmSplash();             //// Mostramos o formulario na forma modal.             f1.ShowDialog(this);             f1.Dispose();         }
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Autenticando o Usuário
No botão OK temos que efetuar a validação do usuário conferindo seu nome e senha.
Para verificar a senha e o nome do usuário temos que consultar o banco de dados usando o DataSet CadastroDataSet criado.
Para fazer isso temos que criar uma nova consulta no banco de dados para saber se o nome e a senha do usuário existem no banco de dados.
Clique duas vezes no em CadastroDataSet para exibir a janela contendo o DataSet:
Clique com o botão direito sobre UsuariosTableAdapter e a seguir clique em Add Query...
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Marque a opção Use SQL Statements (ela já vem marcada) e clique em Next;
Marque a opção SELECT which returns rows (também ja vem marcada) pois queremos retornar um resultado obtido e clique em Next;
Defina a seguinte consulta SQL : SELECT id, login, senha FROM dbo.Usuarios WHERE ( login = @login AND senha= @senha)
 
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Clique em Next;
Informe o nome para a consulta criada conforme a figura abaixo:
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Pronto já criamos a consulta SQL para autenticar o usuário no banco de dados. Vamos ver como podemos usar a consulta no formulário de login.
Defina no formulário os seguintes namespaces:
	using System; using System.Windows.Forms; using Cadastro_Basico.CadastroDataSetTableAdapters;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
No evento Click do botão OK vamos incluir o código abaixo:     
private void btnOK_Click(object sender, EventArgs e)         {             int resultado = usuariosTableAdapter.FillByUsuarioLogin(cadastroDataSet.Usuarios, txtLogin.Text, txtSenha.Text);             if (resultado == 1)             {                 frmCadastro fc = new frmCadastro();                 this.Hide();                 fc.ShowDialog();                 fc.Dispose();             }             else             {                 MessageBox.Show("Usuário/Senha inválido(s) !", "Erro Login", MessageBoxButtons.OK, MessageBoxIcon.Information);             }         }
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
A linha de código:
int resultado = usuariosTableAdapter.FillByUsuarioLogin(cadastroDataSet.Usuarios, txtLogin.Text, txtSenha.Text);
Usa a consulta FillByUsuarioLogin que criamos no TableAdapter usuariosTableAdapter passando o DataSet e os valores para login e senha informados pelo usuário;
O resultado obtido será armazenada na variável resultado.
A seguir verificamos qual foi o resultado:
if (resultado == 1) {    frmCadastro fc = new frmCadastro();    this.Hide();    fc.ShowDialog();    fc.Dispose(); } else {    MessageBox.Show("Usuário/Senha inválido(s) !", "Erro Login", MessageBoxButtons.OK, MessageBoxIcon.Information); }
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Se o resultado for igual a 1 significa que foi encontrado uma linha na tabela cujo nome e senha coincidem com o informado pelo usuário no formulário:
Neste caso criamos uma instância do formulário de cadastro frmCadastro, escondemos o formulário de login e exibimos o formulário principal da aplicação que é o formulário de cadastro; Se o resultado for diferente de 1 então exibimos uma mensagem ao usuário.
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Criando o formulário de Cadastro
No menu Project clique em Add Windows Forms e informe o nome frmCadastro.cs.
A seguir a partir da ToolBox inclua um controle TabControl no formulário e inclua duas TabPages :
tabPage1 - Cadastar Alunos
tabPage2 - Consultar Alunos
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Ative a tabPage1 e inclua nela um controle Panel.
Agora a partir da janela Data Source defina o dataset Alunos como Details e altere o modo de exibição dos campos cursoid e sexo para Combobox;
A seguir arraste o DataSet para o interior do Panel na tabPage1(Cadastrar Alunos); Inclua também um controle PictureBox e um controle Button;
A seguir arraste o dataset Cursos a partir da janela Data Sources para a combobox relativa aos cursos no formulário;
Na janela de propriedades selecione a propriedade Items da combobox para sexo e defina os valores : M e F;
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
De forma que o leiaute da tabPage1 do formulário frmCadastro fique conforme a figura abaixo:
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Ative a tabPage2 e na janela Data Sources altere o modo de exibição do dataset alunos para DataGridView e arraste-o para o interior da tabPage2(Consultar Alunos):
A seguir inclua um controle Label, um controle TextBox e um controle Button definindo o leiaute conforme a figura a seguir:
Exemplo Prático...
© Denis R. de Carvalho – denisrcarvalho@hotmail.com
Dessa forma definimos a interface do formuláriofrmCadastro onde poderemos cadastrar , alterar e modificar os dados dos alunos bem como imprimir um relatórios das informações
Exemplo Prático...

Outros materiais