Buscar

Aula_07 11 18

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 17 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 17 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 17 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

Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
1 
Criando uma nova solution em branco: 
 
 
 
 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
2 
Criando um projeto Console Application 
 
 
 
Criando uma classe de entidade 
 
 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
3 
using System.Threading.Tasks; 
 
namespace Projeto01.Entities 
{ 
 public class Funcionario 
 { 
 //[prop] + 2x[tab] 
 public int IdFuncionario { get; set; } 
 public string Nome { get; set; } 
 public decimal Salario { get; set; } 
 public DateTime DataAdmissao { get; set; } 
 
 //[ctor] + 2x[tab] 
 public Funcionario() 
 { 
 //construtor default (vazio) 
 } 
 
 //sobrecarga de métodos (overloading) 
 public Funcionario(int idFuncionario, string nome, 
 decimal salario, DateTime dataAdmissao) 
 { 
 IdFuncionario = idFuncionario; 
 Nome = nome; 
 Salario = salario; 
 DataAdmissao = dataAdmissao; 
 } 
 
 //sobrescrita de método (override) 
 public override string ToString() 
 { 
 return string.Format("Id: {0}, Nome: {1}, Salário: {2}, 
 Data de Admissão: {3}", IdFuncionario, Nome, 
 Salario, DataAdmissao); 
 } 
 } 
} 
 
Classe para entrada de dados de funcionario 
atraves do prompt do DOS: 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
4 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace Projeto01.Inputs 
{ 
 public class FuncionarioInput 
 { 
 //método para ler o id do funcionario.. 
 public int LerIdFuncionario() 
 { 
 Console.Write("Informe o id do funcionário......: "); 
 return int.Parse(Console.ReadLine()); 
 } 
 
 //método para ler o nome do funcionário.. 
 public string LerNome() 
 { 
 Console.Write("Informe o nome do funcionário....: "); 
 return Console.ReadLine(); 
 } 
 
 //método para ler o salário do funcionário.. 
 public decimal LerSalario() 
 { 
 Console.Write("Informe o salário do funcionário.: "); 
 return decimal.Parse(Console.ReadLine()); 
 } 
 
 //método para ler a data de admissão do funcionário.. 
 public DateTime LerDataAdmissao() 
 { 
 Console.Write("Informe a data de admissão.......: "); 
 return DateTime.Parse(Console.ReadLine()); 
 } 
 } 
} 
 
----------------------------- 
 
Métodos estáticos 
 
Um método estático consiste de um método que é delcarado com a palavra 
reservada static. Estes tipos de métodos não são executados atraves dos 
objetos de uma classe (Instância) e sim atraves do proprio nome da classe. 
 
Para estes tipos de métodos, a máquina virtual do .NET ja garante a 
alocação de espaço de memória. 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
5 
Exemplo: 
 
Método não estático 
 
 public class A 
 { 
 public void Imprimir() 
 { 
 Console.WriteLine("Imprime A"); 
 } 
 } 
 
 public class Test 
 { 
 void Main() 
 { 
 A a = new A(); 
 a.Imprimir(); 
 } 
 } 
 
----------- 
 
Método estático 
 
 public class A 
 { 
 public static void Imprimir() 
 { 
 Console.WriteLine("Imprime A"); 
 } 
 } 
 
 public class Test 
 { 
 void Main() 
 { 
 A.Imprimir(); 
 } 
 } 
 
Note que no exemplo acima, a chamada ao método Imprimir() é feita não 
por um objeto da classe A, mas sim atraves do proprio nome da classe: 
 
A.Imprimir(); 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
6 
Regra: 
 
Se uma classe for declarada como static, todos os métodos desta classe 
tambem deverão ser declarados com static. 
 
Exemplo: 
 
 public static class A 
 { 
 public static void Imprimir01() 
 { 
 Console.WriteLine("Imprime A"); 
 } 
 
 public static void Imprimir02() 
 { 
 Console.WriteLine("Imprime A"); 
 } 
 } 
 
 public class Test 
 { 
 void Main() 
 { 
 
 } 
 } 
 
--------------------------- 
 
Voltando para a classe Input: 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace Projeto01.Inputs 
{ 
 public class FuncionarioInput 
 { 
 //método para ler o id do funcionario.. 
 public static int LerIdFuncionario() 
 { 
 Console.Write("Informe o id do funcionário......: "); 
 return int.Parse(Console.ReadLine()); 
 } 
 
 //método para ler o nome do funcionário.. 
 public static string LerNome() 
 { 
 Console.Write("Informe o nome do funcionário....: "); 
 return Console.ReadLine(); 
 } 
 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
7 
 //método para ler o salário do funcionário.. 
 public static decimal LerSalario() 
 { 
 Console.Write("Informe o salário do funcionário.: "); 
 return decimal.Parse(Console.ReadLine()); 
 } 
 
 //método para ler a data de admissão do funcionário.. 
 public static DateTime LerDataAdmissao() 
 { 
 Console.Write("Informe a data de admissão.......: "); 
 return DateTime.Parse(Console.ReadLine()); 
 } 
 } 
} 
 
----------------------------- 
 
Executando os métodos estáticos: 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Projeto01.Entities; //importando.. 
using Projeto01.Inputs; //importando.. 
 
namespace Projeto01 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Funcionario funcionario = new Funcionario(); 
 
 try 
 { 
 funcionario.IdFuncionario = FuncionarioInput.LerIdFuncionario(); 
 funcionario.Nome = FuncionarioInput.LerNome(); 
 funcionario.Salario = FuncionarioInput.LerSalario(); 
 funcionario.DataAdmissao = FuncionarioInput.LerDataAdmissao(); 
 
 //imprimindo.. 
 Console.WriteLine("\nFuncionário: " + funcionario.ToString()); 
 } 
 catch(Exception e) 
 { 
 //imprimir mensagem de erro.. 
 Console.WriteLine("Erro: " + e.Message); 
 } 
 
 
 Console.ReadKey(); 
 } 
 } 
} 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
8 
Executando: 
 
 
 
Criando um arquivo de 
banco de dados do SqlServer 
 
MDF - Master Database File 
 
 
 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
9 
Gerenciador de servidores:Criando uma tabela de funcionarios na base de dados: 
 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
10 
--LINGUAGEM SQL 
 
create table Funcionario( 
 IdFuncionario integer primary key, 
 Nome nvarchar(50) not null, 
 Salario decimal(18,2) not null, 
 DataAdmissao datetime not null); 
 
Executando: 
 
 
 
Tabela criada na base de dados: 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
11 
Primeiro passo para 
acessar a base de dados: 
 
Criar uma classe de conexão com o banco de dados. 
O objetivo desta classe será simplesmente 
abrir e fechar conexão com o banco de dados 
 
 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data.SqlClient; //importando.. 
 
namespace Projeto01.Repositories 
{ 
 public class Conexao 
 { 
 //[prop] + 2x[tab] 
 public SqlConnection Connection { get; set; } 
 public SqlCommand Command { get; set; } 
 public SqlDataReader DataReader { get; set; } 
 public SqlTransaction Transaction { get; set; } 
 
 public void AbrirConexao() 
 { 
 Connection = new SqlConnection(); 
 Connection.Open(); 
 } 
 
 public void FecharConexao() 
 { 
 Connection.Close(); 
 } 
 } 
} 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
12 
ConnectionString 
 
Nome dado ao "endereço" através do qual podemos acessar uma base de 
dados. A connectionstring é composta de todas as informações 
necessárias para que um programa possa conectar-se a um banco. 
 
Obtendo a connectionstring: 
 
 
 
 
 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
13 
App.config.xml 
 
Arquivo XML utilizado para definir a maior parte dos parametros de 
configuração que serão utilizados pelo sistema Console Application. 
Em projetos Asp.Net este arquivo chama-se Web.config.xml 
 
<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
 <startup> 
 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> 
 </startup> 
 <connectionStrings> 
 <add 
 name="aula05" 
 connectionString="Data Source=(LocalDB)\MSSQLLocalDB; 
 AttachDbFilename=C:\Users\COTI\Desktop\ 
 Aula_07.11.18\Aula05\Projeto01\App_Data\Banco.mdf; 
 Integrated Security=True" 
 /> 
 </connectionStrings> 
</configuration> 
 
Como ler uma configuração definida 
pelo arquivo App.config.xml? 
 
Adicionar no projeto uma biblioteca do .NET 
chamada: System.Configuration 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
14 
Selecione: System.Configuration 
 
 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data.SqlClient; //importando.. 
using System.Configuration; //importando.. 
 
namespace Projeto01.Repositories 
{ 
 public class Conexao 
 { 
 //[prop] + 2x[tab] 
 public SqlConnection Connection { get; set; } 
 public SqlCommand Command { get; set; } 
 public SqlDataReader DataReader { get; set; } 
 public SqlTransaction Transaction { get; set; } 
 
 public void AbrirConexao() 
 { 
 Connection = new SqlConnection(ConfigurationManager 
 .ConnectionStrings["aula05"].ConnectionString); 
 Connection.Open(); 
 } 
 
 public void FecharConexao() 
 { 
 Connection.Close(); 
 } 
 } 
} 
 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
15 
Criando uma classe para realizar operações 
em banco de dados com a tabela / entidade 
Funcionario: 
 
CRUD (Create, Read, Update e Delete) 
 
 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data.SqlClient; 
using Projeto01.Entities; 
 
namespace Projeto01.Repositories 
{ 
 public class FuncionarioRepository : Conexao 
 { 
 //método para gravar um funcionario na tabela do banco 
 public void Inserir(Funcionario funcionario) 
 { 
 AbrirConexao(); 
 
 //escrever o comando SQL (query) 
 string query = "insert into Funcionario 
 (IdFuncionario, Nome, Salario, DataAdmissao) " 
 + "values(@IdFuncionario, @Nome, @Salario, 
 @DataAdmissao)"; 
 
 Command = new SqlCommand(query, Connection); 
 
 Command.Parameters.AddWithValue 
 ("@IdFuncionario", funcionario.IdFuncionario); 
 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
16 
 Command.Parameters.AddWithValue 
 ("@Nome", funcionario.Nome); 
 
 Command.Parameters.AddWithValue 
 ("@Salario", funcionario.Salario); 
 
 Command.Parameters.AddWithValue 
 ("@DataAdmissao", funcionario.DataAdmissao); 
 
 Command.ExecuteNonQuery(); //executar o comando SQL.. 
 
 FecharConexao(); 
 } 
 } 
} 
 
Executando: 
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Projeto01.Entities; //importando.. 
using Projeto01.Inputs; //importando.. 
using Projeto01.Repositories; //importando.. 
 
namespace Projeto01 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Funcionario funcionario = new Funcionario(); 
 
 try 
 { 
 funcionario.IdFuncionario = FuncionarioInput.LerIdFuncionario(); 
 funcionario.Nome = FuncionarioInput.LerNome(); 
 funcionario.Salario = FuncionarioInput.LerSalario(); 
 funcionario.DataAdmissao = FuncionarioInput.LerDataAdmissao(); 
 
 FuncionarioRepository repository = new FuncionarioRepository(); 
 repository.Inserir(funcionario); 
 
 Console.WriteLine("\nDados gravados com sucesso."); 
 
 //imprimindo.. 
 Console.WriteLine("\nFuncionário: " + funcionario.ToString()); 
 } 
 catch(Exception e) 
 { 
 //imprimir mensagem de erro.. 
 Console.WriteLine("Erro: " + e.Message); 
 } 
 
 Console.ReadKey(); 
 } 
 } 
} 
 
 
 
Treinamento em C# WebDeveloper 
 
Aula 
05 
Quarta-feira, 07 de Novembro de 2018 
 
 
Desenvolvimento Orientado a Objetos em C# 
 
 
17 
Saída do programa: 
 
 
 
No banco de dados:

Continue navegando