sábado, 4 de agosto de 2012

DICAS 01 - Adicionar uma linha em branco em uma DropDownList C# ASP.NET


Olá Pessoal, o blog esta criando uma nova série, chamada Dicas, envolvida no nosso dia a dia, então vamos lá para a primeira dica.

Adicionar uma linha em branco em uma dropDownList em C# e ASP.NET


Cenário: Tenho uma lista de Cidade, e não quero que exiba a primeira cidade, mas uma linha em branco, forçando o usuário a selecionar uma cidade.

Obs: Se baseia na label Autor como resultado final e Editora como a querendo quer ser inicializar em branco

Como na imagem:

















Solução: Aonde você alimenta a DropDownList insira o código abaixo:

ddlAutor.Items.Insert(0, new ListItem("", ""));
  
Onde 

ddlAutor = nome da DropDown List
Items = Coleção de funcionalidade para o controle
Insert = Insere um item especifico

No caso o método insert ele é sobrecarregado, por isso, existem vários métodos que podemos usar. No caso estaremos usando os parâmetros abaixo.

ddlAutor.Items.Insert(int index, new ListItem item);
Abaixo o método completo

ddlAutor.DataTextField = "Nome";
ddlAutor.DataValueField = "Codigo";

ddlAutor.DataSource = tbAutor;
ddlAutor.DataBind();

ddlAutor.Items.Insert(0, new ListItem("", ""));

Bom é isso pessoal, espero que ajude, qualquer dúvida poste nos comentários ou envie-nos um email para duvida@nstutoriais.com

quarta-feira, 4 de julho de 2012

Série LINQ 01 - Introdução


O que é LINQ?
Surgiu no evento Microsoft Professional Developers Conferece(PDC) em 2005, pela equipe liderada por, Anders Hejlberg. Apresentaram uma nova abordagem que unifica a forma como os dados podem ser recuperados em .NET, assim surgiu Language Integrated Query(LINQ). Linq fornece uma maneira uniforme para recuperar dados de qualquer objeto que implementa a interface IEnumerable. Com o LINQ, podemos usa as seguintes fontes de dados: arrays, coleções de dados relacionais e XML.
Por que o LINQ?
Com o LINQ, você pode usar a mesma sintaxe para recuperar dados de qualquer fonte de dados. Exemplo:


var query = from e in funcionários
            where e.codigo == 1
select e.nome



              A sintaxe do LINQ é muito semelhante ao SQL. O Objetivo do LINQ não foi adicionar outra maneira de acessar os dados, mas para fornecer um conjunto nativo integrado de instruções para consultar qualquer tipo de fonte de dados. Usando a linguagem C#, podemos escrever o código de acesso de dado e o compilador será capaz de impor segurança de tipo e até mesmo consistência lógica. LINQ fornece um rico conjunto de instruções para implementar consultas complexas suportando agregação, joins(unir tabelas), sortings(classificação) e muito mais.


A seguir, as principais partes do LINQ, que você pode trabalhar.

LINQ to Objects: é uma API que fornece métodos que representam um conjunto de operadores padrão de consulta (SQOs) para recuperar dados de qualquer objeto cuja classe implementar a interface IEnumerable. Essas consultas são executadas em memória de dados.

LINQ to ADO.NET: aumenta SQOs para trabalhar com os dados relacionais. (É composto por três partes (Ver figura 1)).

LINQ to SQL: (antigamente DLinq) é usado para consultar bancos de dados relacionais como o Microsoft SQL Server.  Para tirar proveito do LINQ to SQL você deve a seguinte referência;

System.Data.Linq;

LINQ to DataSet: suporta consultas usando os conjuntos de dados ADO.NET e tabelas de dados.

LINQ to Entities: é uma solução Microsoft ORM, que permite aos desenvolvedores usa entidades (uma característica ADO.NET 3.0) para especifica a estrutura de objetos de negócios e usar o LINQ para consultá-los

LINQ to XML: (antigamente XLinq) SQOs não só amplia, mas também inclui uma série de XML recursos específicos para a criação de documentos XML e consultas. Use a referencia a seguir:
System.Xml.Linq




Nesta serie de artigos estaremos aprendendo sobre LINQ to SQL.

sexta-feira, 7 de outubro de 2011

Jogos em C#

C # - Jogo Blaster 


Space Invaders foi um sucesso e gerou centenas de milhões de dólares, não só para os desenvolvedores mas também para outras empresas que imitaram a fórmula de sucesso do jogo. A jogabilidade foi muito inovadora na época. Antes a maioria dos jogos tinha um tempo para acabar, já em Space Invaders o jogo só acabava quando o jogador perdesse suas três vidas, com isso a duração do jogo ficava nas mãos da habilidade dos jogadores. (http://pt.wikipedia.org/wiki/Space_Invaders)






C# - Jogo de Xadrez

Xadrez é um jogo de tabuleiro de natureza recreativa e competitiva para dois jogadores, sendo também conhecido como Xadrez Ocidental ou Xadrez Internacional para distingui-lo dos seus predecessores e de outras variantes da atualidade. A forma atual do jogo surgiu no Sudoeste da Europa na segunda metade do Século XV, durante o Renascimento, depois de ter evoluído de suas antigas origens persas e indianas. O Xadrez pertence à mesma família doXiangqi e do Shogi e, segundo os historiadores do enxadrismobr. (ou xadrezismo pt.), todos eles se originaram do Chaturanga, que se praticava na Índia noSéculo VI d.C.[1]



C# - Sudoku 

 é um quebra-cabeça baseado na colocação lógica de números. O objetivo do jogo é a colocação de números de 1 a 9 em cada uma das células vazias numa grade de 9×9, constituída por 3×3 subgrades chamadas regiões. O quebra-cabeça contém algumas pistas iniciais, que são números inseridos em algumas células, de maneira a permitir uma indução ou dedução dos números em células que estejam vazias. Cada coluna, linha e região só pode ter um número de cada um dos 1 a 9.








Boids:: Aves de simulação de comportamento

Boids, desenvolvido por Craig Reynolds, em 1986, é um programa de vida artificial,simulando o comportamento flocking de aves.
Como a maioria das simulações de vida artificial, Boids é um exemplo de comportamento emergente, ou seja, a complexidade da Boids surge da interação dos agentes individuais (oboids, neste caso) aderir a um conjunto de regras simples. As regras aplicadas no mundomais simples Boids são as seguintes:

separação: orientar para evitar aglomeração flockmates locais
alinhamento: orientar para a média título de flockmates locais
coesão: orientar a se mover para a posição média de flockmates locais
src: wikipedia

Como: -

Botão direito do mouse: Adicionar Boid novo Blue

Esquerdo do mouse: Adicionar novo Red Boid

O que acontece depois?

O azul boids tentar mover-se em grupos - notar que eles têm uma visão limitada de vista!Eles sempre temem o boids vermelho para que eles tentam evitá-los.


Jogo Pong em C#
 código fonte anexo é um clone pong simples, com quatro níveis de dificuldade. 
Baixar o código fonte e executar o exemplo para ver como funciona o jogo e os detalhes do código.
Nota : Este código é escrito usando NET Framework 2.0.. Você deve ter. NET Framework 2.0 instalado em sua máquina antes de executar este código.







                                                                     DOWNLOAD

C# - Snooker


Um jogo de sinuca!









                                                         DOWNLOAD


terça-feira, 27 de setembro de 2011

Sistema de Contato em Três Camadas C# - Parte III de III

Camada de Apresentação

Renomeie o formulário form1.cs para frmContato.cs
Na propriedade do formulário modifique os seguintes:
Nome
Valor
O que é?
Name
frmContato
Nome do Formulário
BackColor
White
Plano de Fundo
Icon
Escolha o ícone com extensão .icon
Ícone
Size
509; 733
Tamanho do Formulário
StartPosition
CenterScreen
Posição inicia
Text
Contatos
Titulo




No topo do formulario, adicione o componente Panel, uma PictureBox e uma label, conforme a imagem a seguir:


Adicione uma groupBox e os componentes a seguir conforme a imagem: utilize label, textbox e uma maskTextBox.




os nomes dos controles são:
textBox1 = txtCodigo
textBox2 = txtNome
textBox3 = txtEndereco
maskedTextBox1 = mkTelefone

Adicione outra groupbox e os controles a seguir conforme a imagem:


button1 = btnNovo
button2 = btnSalvar
button3 = btnAtualizar
button4 = btnExcluir

Adicione outra groupbox com os controles a seguir

combobox1 = cbmFiltro
maskedTextBox1 = mkPesquisar.
Na propriedade Items adicione os seguintes textos:
Código
Nome
Telefone
e no botão pesquisar = btnPesquisar
Adicione a ultima groupbox e dentro dela insira uma DataGridView. Recendo o nome dgvContato


vá para o código do formulário (F7)
insira o código a seguir:
Chamar a classe RegraNegocio
RegraNegocio negocio = new RegraNegocio();

Habilitar os controles
  private void habilitarControles()
        {
            txtNome.Enabled = true;
            txtEndereco.Enabled = true;
            mkTelefone.Enabled = true;
        }


Limpar os Campos
 
  private void LimparCampo()
        {
            foreach (Control cont in this.Controls)
            {
                if (cont is GroupBox)
                {
                    for (int i = 0; i < cont.Controls.Count; i++)
                    {
                        if (cont.Controls[i] is TextBox)
                            (cont.Controls[i] as TextBox).Text = "";
                        if (cont.Controls[i] is ComboBox)
                            (cont.Controls[i] as ComboBox).SelectedIndex = -1;
                        if (cont.Controls[i] is MaskedTextBox)
                            (cont.Controls[i] as MaskedTextBox).Text = "";
                    }
                }
            }
        }
No evento load do formulário insira o código a seguir
  private void frmContato_Load(object sender, EventArgs e)
        {
            btnNovo.Enabled = true;
            negocio.PreencherDataGrid(dgvContato);
        }
Clique no botão novo e insira o código a seguir:
    private void btnNovo_Click(object sender, EventArgs e)
        {
          
            habilitarControles();
            btnNovo.Enabled = false;
            btnAtualizar.Enabled = false;
            btnExcluir.Enabled = false;
            if (txtNome.Text != null)
            {
                txtNome.Focus();
                btnSalvar.Enabled = true;
            }
            LimparCampo();
        }
Clique no botão Salvar e insira o código a seguir:
private void btnSalvar_Click(object sender, EventArgs e)
        {
          
            if (txtNome.Text != "")
            {
                RegraNegocio cln = new RegraNegocio();
                cln.Nome = this.txtNome.Text;
                cln.Endereco = this.txtEndereco.Text;
                cln.Telefone = this.mkTelefone.Text;
                cln.InserirContato();
                negocio.PreencherDataGrid(dgvContato);
                btnSalvar.Enabled = false;
                btnAtualizar.Enabled = true;
                btnExcluir.Enabled = true;
                MessageBox.Show("Contato cadastrado com sucesso",
                    "Sucesso",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
            }
            else
            {
                txtNome.Focus();
                btnNovo.Enabled = false;
                MessageBox.Show("Adicione um nome de Usuário",
                    "Atenção",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
            }
        }
Clique no botão Atualizar e insira o código a seguir:
        private void btnAtualizar_Click(object sender, EventArgs e)
        {
         
            try
            {
                if (txtCodigo.Text != null)
                {
                    negocio.Codigo = int.Parse(txtCodigo.Text);
                    negocio.Nome = txtNome.Text;
                    negocio.Endereco = txtEndereco.Text;
                    negocio.Telefone = mkTelefone.Text;
                    negocio.AtualizarContato();
                    negocio.PreencherDataGrid(dgvContato);
                    MessageBox.Show("Atualizado com sucesso",
                        "Sucesso",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("O Campo código é obrigatório",
                        "Atenção",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível atualizar os dados pelo seguinte motivo: " + ex.Message);
            }
       
Clique no botão excluir e insira o código a seguir:
private void btnExcluir_Click(object sender, EventArgs e)
        {
           
            try
            {
                if (txtCodigo.Text != null)
                {
                    negocio.Codigo = int.Parse(txtCodigo.Text);
                    negocio.ExcluirContato();
                    LimparCampo();
                    negocio.PreencherDataGrid(dgvContato);
                    btnExcluir.Enabled = false;
                    btnAtualizar.Enabled = false;
                    MessageBox.Show("Excluido com sucesso",
                        "Sucesso",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("O Campo Código é obrigatório",
                        "Atenção",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível excluir os dados pelo seguinte motivo: " + ex.Message);
            }
        }        
Clique no botão pesquisar e insira o código a seguir:
private void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (cbbFiltro.Text == "Código")
            {
                negocio.Codigo = int.Parse(mkPesquisar.Text);
                negocio.ConsultarCodigo(dgvContato);
            }
            if (cbbFiltro.Text == "Nome")
            {
                negocio.Nome = mkPesquisar.Text;
                negocio.ConsultarNome(dgvContato);
            }
            if (cbbFiltro.Text == "Telefone")
            {
                negocio.Telefone = mkPesquisar.Text;
                negocio.ConsultarTelefone(dgvContato);
            }
            if (cbbFiltro.Text == "")
            {
                negocio.PreencherDataGrid(dgvContato);
            }
        }
Clique duas vezes na ComboBox do Filtro de pesquisa e insira o código a seguir:
        private void cbbFiltro_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbbFiltro.Text == "Telefone")
            {
                mkPesquisar.Mask = "(00)0000-0000";
            }
            else
            {
                mkPesquisar.Clear();
                mkPesquisar.Mask = "";
            }
        }
No evento da DataGridView (no raio) Click insira o código a seguir:
   private void dgvContato_Click(object sender, EventArgs e)
        {
            habilitarControles();
            btnAtualizar.Enabled = true;
            btnExcluir.Enabled = true;
            txtCodigo.Text = dgvContato.CurrentRow.Cells[0].Value.ToString();
            txtNome.Text = dgvContato.CurrentRow.Cells[1].Value.ToString();
            txtEndereco.Text = dgvContato.CurrentRow.Cells[2].Value.ToString();
            mkTelefone.Text = dgvContato.CurrentRow.Cells[3].Value.ToString();
        }

Conclusão

O Conceito de três camadas veio com o objetivo de separar a lógica de negocio da lógica de apresentação e acesso a dados. Com isto o sistema torna-se mais fácil a manutenção e inserção de funções. Este é o primeiro tutorial em três camadas do blog nstutoriais.blogspot.com, e vamos fazer muito mais. Caso tenha alguma dúvida acesse o blog ou adicione no MSN: natanaelsantosdf@hotmail.com ou na nossa página do facebook.  
Tutorial em PDF = Clique aqui Código Fonte do arquivo = Clique aqui
Parte I = Clique aqui
Parte II = Clique aqui
Parte III = Clique aqui