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 18 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 18 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 18 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#
	
Criando uma nova solution em branco:
Criando um projeto Console Application
Criando uma classe de entidade
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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:
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.
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();
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();
 }
 //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();
 }
 } 
}
Executando:
Criando um arquivo de 
banco de dados do SqlServer
MDF - Master Database File
Gerenciador de servidores:
Criando uma tabela de funcionarios na base de dados:
--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:
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();
 }
 }
}
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:
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 projetosAsp.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
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();
 }
 }
}
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);
 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();
 }
 } 
}
Saída do programa:
No banco de dados:
17