A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bruno Inojosa MCP.NET Framework.NET com C#. SQL Básico.

Apresentações semelhantes


Apresentação em tema: "Bruno Inojosa MCP.NET Framework.NET com C#. SQL Básico."— Transcrição da apresentação:

1 Bruno Inojosa MCP.NET Framework.NET com C#

2 SQL Básico

3 Inserir Registro INSERT INTO [cliente] ([cli_nome],[cli_end],[cli_cnpj]) VALUES ('Bill Gates','Quinta Avenida','12345678900') Se a tabela possui um campo identity, não é permitido definir manualmente o valor para este campo Se um campo foi definido como NOT NULL então é necessário especificar seu valor

4 Alterar Registro UPDATE [cliente] SET [cli_end] = 'Sete de Setembro' WHERE [cli_cnpj] = '12345678900 ' Ao atualizar um registro, especifique as colunas a serem alteradas A cláusula WHERE é opcional, se for omitida então a atualização ocorrerá em todos os registros

5 Deletar Registro DELETE FROM [cliente] WHERE [cli_cnpj] = '12345678900'

6 Selecionar Registros Todas as colunas da tabela cliente SELECT * FROM cliente Coluna com o código e o nome da tabela cliente. SELECT cli_cod, cli_nome FROM cliente Todos as colunas da tabela cliente onde o nome comece com Bil SELECT * FROM cliente WHERE cli_nome LIKE 'Bil%'

7 ADO.NET

8 O que é ADO.NET  ADO.NET compreende:  Um conjunto de classes, interfaces, estruturas e enumerações que gerenciam acesso a dados de dentro do.NET Framework  Um modelo de programação projetado para ambientes desconectados  Um modelo de programação com avançado suporte a XML

9 Modelo de objetos do ADO.NET Banco de Dados.NET Data Provider Connection Transaction Command Parameters DataReader TableAdapter SelectCommand InsertCommand UpdateCommand DeleteCommand DataSet DataTableCollection DataTable DataRowCollection DataColumnCollection ConstraintCollection DataRelationCollection XMLXML

10 Providers  Conjunto de classes especializadas que implementam a interface de acesso ao dados;  Existe por padrão no Framework, providers específicos para cada tipo de banco de dados;  SQL Provider: acesso à banco de dados do SQL Server  Oracle Provider: acesso à banco de dados do Oracle Database  OleDB Provider: acesso à banco de dados com driver OleDB  ODBC Provider: acesso à banco de dados com driver ODBC  Providers específicos oferecem aumento da performance.

11 Modelo ADO.NET DataSet Connection DataReader Command DataAdapter WindowsForm WebForm Classes WebServices Provider ADO.NET Consumidores

12 Acesso ao Banco de Dados Gerencia a conexão ao banco de dados Executa a consulta/comando no banco de dados Troca dados entre o data set e o banco de dados Provê acesso a conjuntos de dados para leitura apenas Banco de Dados Connection Command DataReader DataAdapter

13 Connection String É uma string estática, de somente leitura, responsável por informar o nome do servidor, nome do banco de dados, usuário e senha para acessar a base de dados utilizada pela aplicação.

14 Objeto Connection Utilizado para fazer a conexão com o banco de dados; Existe um para cada tipo de provider; Permite o pooling de conexões; A conexão é feita através de uma string de conexão. SqlConnection cn = new SqlConnection(); cn.ConnectionString = "Data Source=localhost;" + "Integrated Security=SSPI;" + "Initial Catalog=Northwind"; SqlConnection cn = new SqlConnection(); cn.ConnectionString = "Data Source=localhost;" + "Integrated Security=SSPI;" + "Initial Catalog=Northwind";

15 Objeto Command Utilizado para a execução de comandos no banco de dados; Pode ser criado através de uma conexão: Para definir o comando a ser executado utilize a propriedade CommandText: SqlCommand cmd = cn.CreateCommand(); cmd.CommandText = "SELECT * FROM Tabela";

16 Objeto Command  Como existem diferentes tipos de comandos, existem também diferentes tipos de execução:  ExecuteReader() Retorna um objeto DataReader, com o resultado da consulta  ExecuteNonQuery() Não retorna nenhum tipo de dado, apenas o número de células afetadas  ExecuteScalar() Retorna um único valor (object) escalar  ExecuteXMLReader Retorna um XMLReader

17 Command-ExecuteNonQuery  É responsável pela execução de comandos SQL para manipulação dos dados no banco de dados.  São comandos como DELETE e UPDATE que não retornam nenhum resultado de SELECT e não utilizam nenhum parâmetro de saída.  Possui duas definições:  Recebendo um CommandType (Text ou StoredProcedure), uma string com a instrução SQL (Query ou nome do procedimento) e um vetor de parâmetros SQL  Ou recebendo, além destes parâmetros, uma transação SQL. A transação é utilizada para garantir a atomicidade de vários comandos, ou seja, fazer com que um conjunto de comandos sejam executados ou descartados totalmente

18 Command-ExecuteNonQuery Exemplo de uso : SqlConnection cnn = new SqlConnection( "Data Source=localhost;" + "Initial Catalog=Videos;Integrated Security=True"); SqlCommand cmd = new SqlCommand("UPDATE titulos SET Nome = 'Sem Nome' WHERE Nome = ''", cnn); cnn.Open(); int qtidade =cmd.ExecuteNonQuery(); Console.WriteLine(qtidade + " linhas foram afetadas."); cnn.Close(); SqlConnection cnn = new SqlConnection( "Data Source=localhost;" + "Initial Catalog=Videos;Integrated Security=True"); SqlCommand cmd = new SqlCommand("UPDATE titulos SET Nome = 'Sem Nome' WHERE Nome = ''", cnn); cnn.Open(); int qtidade =cmd.ExecuteNonQuery(); Console.WriteLine(qtidade + " linhas foram afetadas."); cnn.Close();

19 Command-ExecuteScalar Exemplo de uso : SqlConnection cnn = new SqlConnection( "Data Source=localhost;" + "Initial Catalog=Videos;Integrated Security=True"); SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM titulos", cnn); cnn.Open(); object qtidade = cmd.ExecuteScalar(); Console.WriteLine("Existem " + (int)qtidade + " títulos"); cnn.Close(); SqlConnection cnn = new SqlConnection( "Data Source=localhost;" + "Initial Catalog=Videos;Integrated Security=True"); SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM titulos", cnn); cnn.Open(); object qtidade = cmd.ExecuteScalar(); Console.WriteLine("Existem " + (int)qtidade + " títulos"); cnn.Close();

20 Objeto DataReader  Utilizado para leitura de dados  Existe um para cada tipo de provider  Vantagens:  Velocidade  Usado para leitura de grandes quantidades de dados  Desvantagens:  Não permite a modificação dos dados lidos  Permite somente leitura seqüencial

21 COMMAND-ExecuteReader Ele é utilizado para retornar um DataReader para a classe. Uma particularidade deste método é que, devido ao fato de trabalhar conectado ao banco de dados, não podemos fechar a conexão. Para que a conexão não fique aberta após a leitura, é utilizada a cláusula CommandBehavior.CloseConnection.

22 Objeto DataReader Inicia sempre na posição BOF (Begin Of File); Para ler o conteúdo de um campo específico utilize: Para ir para o próximo registro, utilize: SqlDataReader dr = cmd.ExecuteReader(); string str = dr["NomeDoCampo"]; dr.Read();

23 Objeto DataReader Exemplo de uso (1): SqlConnection cn = new SqlConnection("Data Source=localhost;" + "Integrated Security=SSPI;" + "Initial Catalog=Northwind"); SqlCommand cmd = new SqlCommand("select * from Customers", cn); cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { comboBox1.Add(dr["CompanyName"]); } dr.Close(); cn.Close(); SqlConnection cn = new SqlConnection("Data Source=localhost;" + "Integrated Security=SSPI;" + "Initial Catalog=Northwind"); SqlCommand cmd = new SqlCommand("select * from Customers", cn); cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { comboBox1.Add(dr["CompanyName"]); } dr.Close(); cn.Close();

24 Objeto DataReader Exemplo de uso (2): SqlConnection cn = new SqlConnection("Data Source=localhost;“+ "Integrated Security=SSPI;" + "Initial Catalog=Northwind"); SqlCommand cmd = new SqlCommand("select * from Customers", cn); cn.Open(); DataTable dt = new DataTable(); dt.Load(cmd.ExecuteReader()); cn.Close(); SqlConnection cn = new SqlConnection("Data Source=localhost;“+ "Integrated Security=SSPI;" + "Initial Catalog=Northwind"); SqlCommand cmd = new SqlCommand("select * from Customers", cn); cn.Open(); DataTable dt = new DataTable(); dt.Load(cmd.ExecuteReader()); cn.Close();

25 Objeto DataAdapter Responsável pela comunicação entre um objeto DataSet e o banco de dados; Específico para cada tipo de provider; Agrega objetos do tipo Command, facilitando a inserção, atualização e remoção de registros no banco de dados; Possui métodos específicos para popular e atualizar um DataSet.

26 Objeto DataAdapter Exemplo de uso : SqlConnection cnn = new SqlConnection("Data Source=localhost;" + "Initial Catalog=Videos;Integrated Security=True"); SqlCommand cmd = new SqlCommand("SELECT * FROM titulos", cnn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); SqlConnection cnn = new SqlConnection("Data Source=localhost;" + "Initial Catalog=Videos;Integrated Security=True"); SqlCommand cmd = new SqlCommand("SELECT * FROM titulos", cnn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds);

27 Objeto DataSet Utilizado para acesso em geral a um banco de dados; Independente de provider; Trabalha desconectado do banco de dados; Os dados são armazenados dentro de uma coleção de objetos DataTable; Mantém os relacionamentos existentes no banco de dados, entre os DataTables.

28 Objeto DataSet  DataSets armazenam dados de forma semelhante a um modelo de banco de dados relacional  São constituídos de coleções de tabelas (Tables) e relacionamentos (Relations)  Tabelas (Tables) contém coleções de colunas (Columns), restrições (Constraints) and registros (Rows)  Implementa interface IListSource para utilização com componentes visuais DataSet Constraints Table Column Constraint Rows Row Relations Relation ObjectCollection Tables Columns

29 Objeto DataSet Preenchimento de um DataSet: Atualização do DataSet no Banco de dados: da.Update(ds); SqlDataAdapter da; da = new SqlDataAdapter("SELECT * FROM Clientes"); DataSet ds = new DataSet("Clientes"); da.Fill(ds, "Clientes");

30 Objeto DataSet Exemplo de uso: SqlConnection cn = new SqlConnection("Data Source=localhost;" + "Integrated Security=SSPI;" + "Initial Catalog=Northwind"); SqlCommand cmd = new SqlCommand("SELECT * FROM Customers", cn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet("Customers"); da.Fill(ds, "Customers"); foreach (DataRow dr in ds.Tables["Customers"].Rows){ Console.WriteLine("{0}:{1}", dr[0], dr["ContactName"]); }

31 Objeto DataTable Representa uma tabela do banco de dados; Incorporado ao DataSet, mas ainda um objeto independente; Podem ter restrições, como chave primárias; Podem se relacionar entre si, da mesma maneira que no banco de dados; Possui método para executar filtragens e ordenações; Para isso utiliza comandos SQL, que seriam utilizados nas cláusulas Select e Order By.

32 Objeto DataTable Filtragem Ordenação DataRow[] rows; rows = ds.Tables["Clientes"].Select("Country = 'Brazil'", "CustomerName DESC"); DataRow[] rows; rows = ds.Tables["Customers"].Select("CustomerID LIKE 'A%'");

33 Laboratório 3.1.1


Carregar ppt "Bruno Inojosa MCP.NET Framework.NET com C#. SQL Básico."

Apresentações semelhantes


Anúncios Google