Cadastre-se Revistas DevMedia Cursos
 

Space de JHONATAN FERNANDO
Busca Autor


Últimas 20 atualizações de JHONATAN FERNANDO

Artigo - Utilizando DataSet como Tabela Temporária

Utilizando DataSet como Tabela Temporária


net-28-05-2008pic01.JPG

No desenvolvimento de aplicações, sempre nos deparamos com a necessidade de armazenar alguns valores para efeito de cálculo, verificações ou outras necessidades.

Para isto um DataSet pode ser bem útil. Como todos nós sabemos existe dois tipos de DataSet o tipado e não-tipado. O tipado seria uma representação da tabela do Banco de dados possuindo os mesmos tipos, relacionamentos. O não-tipado seria aquele que não representa fielmente uma tabela, ou seja, podemos defini-lo da maneira necessária para nossa utilização e será neste que iremos focar.

Para definirmos um DataSet podemos fazer isto no Designer do Visual Studio ou via código. Vamos utilizar a opção via código primeiro, pois também é a mais utilizada. Para isto será necessário a implementação de um projeto Windows Application.

Definiremos em nosso formulário uma variável global do tipo DataSet (Para utilizar este objeto é necessário que o namespace System.Data seja informado), conforme pode ser visto na
Figura 1.

net-28-05-2008pic02.JPG
Figura 1 – Definindo a variável global dataset1

Após definido nossa variável global, iremos implementar a nossa tabela temporária, sendo que os campos pertencentes dependerão exclusivamente da funcionalidade a ser implementada. Para isto definiremos o método CarregaTabelaTemp como pode ser visto na Listagem 1.

Listagem 1 – Definindo estrutura da tabela temporária

    private void CarregaTabelaTemp()

    {

      // Instancia a variável global

      dataset1 = new DataSet();

 

      // Definindo variável de tabela

      DataTable dt = new DataTable("temp");

 

      // Definindo os campos da Tabela

      dt.Columns.Add("Codigo", typeof(int));

      dt.Columns.Add("Descricao", typeof(string));

      dt.Columns.Add("Data", typeof(DateTime));

      dt.Columns.Add("Imagem", typeof(Bitmap));

 

      // Incluindo a tabela no DataSet

      dataset1.Tables.Add(dt);

   }

Como pode ser visto no método CarregaTabelaTemp, este tem como finalidade definir a estrutura da tabela temporária que estará em nosso dataset1. Para adicionar as colunas em uma tabela é necessário informar o nome da coluna a ser adicionada e o tipo da mesma. Após todos os tipos definidos é só adicionar a tabela no DataSet.

Lembrando que o DataSet também é um conjunto de tabelas então, de acordo com a necessidade, pode ser adicionada uma ou várias tabelas em um mesmo DataSet.

Se caso necessário podemos inserir em nossa tabela algumas validações como chave primária, índex e até mesmo chave estrangeira, fazendo com que dados não se repetem ou obedeçam a uma determinada chave.

Para isto o novo código do método CarregaTabelaTemp ficaria como mostra a
Listagem 2.

Listagem 2 – Definindo estrutura da tabela temporária com Chave Primária

    private void CarregaTabelaTemp()

    {

      // Instancia a variável global

      dataset1 = new DataSet();

 

      // Definindo variável de tabela

      DataTable dt = new DataTable("temp");

 

      // Definindo os campos da Tabela

      dt.Columns.Add("Codigo", typeof(int));

      dt.Columns.Add("Descricao", typeof(string));

      dt.Columns.Add("Data", typeof(DateTime));

      dt.Columns.Add("Imagem", typeof(Bitmap));

 

      // Definindo a coluna Código como Chave Primária

      dt.PrimaryKey = new DataColumn[] { dt.Columns["Codigo"] };

 

      // Definindo que valores da coluna descrição não podem se repetir

      dt.Columns["Descricao"].Unique = true;

 

      // Incluindo a tabela no DataSet

      dataset1.Tables.Add(dt);

    }

Como pôde ser viso na Listagem 2 foi definida para a tabela temporária qual coluna faz parte da chave primária, sendo que se tivesse mais alguma seria só incluir mais um item no array separando por vírgula. Ao tentar gravar um registro o próprio DataSet verifica se não há inconsistên

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
28/05/2008 16:30:00





Artigo - Utilizando Diagrama de Classes do Visual Studio 2005 – Parte 02

Utilizando Diagrama de Classes do Visual

Studio 2005 – Parte 02


Desenvolvendo e Alterando códigos gerados

Como foi dito no artigo anterior, sempre é necessário revisar os códigos gerados para implementar ou corrigir algo que foi gerado.

As alterações mais significantes que foram realizadas foram nos construtores das classes como foi ser visto nas listagens abaixo.

public class Pessoa

  {

    private string nome = string.Empty;

    private string sexo;

 

    public string Sexo

    {

      get { return sexo; }

      set { sexo = value; }

    }

    private DateTime dataNascimento;

 

    public DateTime DataNascimento

    {

      get { return dataNascimento; }

      set { dataNascimento = value; }

    }

 

    public string Nome

    {

      get { return nome; }

      set { nome = value; }

    }

 

    public Pessoa(string nome, string sexo, DateTime dataNascimento)

    {

      this.nome = nome;

      this.sexo = sexo;

      this.dataNascimento = dataNascimento;

    }

  }

Listagem 1 – Classe Pessoa


public
class Funcionario : Pessoa

  {

    private float salario;

 

    public float Salario

    {

      get { return salario; }

      set { salario = value; }

    }

    private string empresa;

 

    public string Empresa

    {

      get { return empresa; }

      set { empresa = value; }

    }

 

    public Funcionario(string nome, string sexo, DateTime dataNascimento)

      : base(nome, sexo, dataNascimento)

    {

     

    }

}
Listagem 2– Classe Funcionario


public class AnalistaSistemas : Funcionario

  {

    private string linguagemProgramacao;

 

    public AnalistaSistemas(string nome, string sexo, DateTime dataNascimento)

      : base(nome, sexo, dataNascimento)

    {

      throw new System.NotImplementedException();

    }

 

    public string LinguagemProgramacao

    {

      get { return linguagemProgramacao; }

      set { linguagemProgramacao = value; }

    }

  }
Listagem 3 – Classe AnalistaSistemas

  public class Engenheiro : Funcionario

  {

    private int crea;

 

    public Engenheiro(string nome, string sexo, DateTime dataNascimento)

      :base(nome,sexo,dataNascimento)

    {

 

    }

 

    public int Crea

    {

      get { return crea; }

      set { crea = value; }

    }

}
Listagem 4 – Classe Engenheiro

Como se pode ver as principais alterações foram nos métodos construtores de cada classe, para que as os atributos da classe recebam os valores das variáveis que estão sendo passadas por parâmetro.

Apesar da falta de alguns recursos é possível realizarmos um Diagrama de Classes bastante completo definindo quando necessário, Eventos, Métodos, Propriedades para as classes e ainda acrescento e implementando Interfaces, Enum, Abstract Class e outras entidades.

Realizando testes nos códigos gerados

Para realização de teste foi criado uma simples aplicação console que permite que o usuário cadastre os tipos de entidades que criamos com classe (Funcionário, Engenheiro) e depois emitir todos os itens cadastrados.

Provando que a herança e as propriedades criadas e herdades funcionam da maneira que definimos, como pode ser visualizado na
Listagem 5.

static void Main(string[] args)

    {

      ArrayList pessoas = new ArrayList();

      int i = 0;

      while (i == 0)

      {

        Console.WriteLine("Testes de aplicação com os objetos gerados pelo Diagrama de Classes\r\n");

        Console.WriteLine("1 - Adicionar uma nova Pessoa");

        Console.WriteLine("2 - Adicionar um novo Funcionário");

        Console.WriteLine("3 - Adicionar um novo Analista de Sistemas");

        Console.WriteLine(

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
26/05/2008 16:34:00





Artigo - Utilizando Diagrama de Classes do Visual Studio 2005 – Parte 01

Utilizando Diagrama de Classes do Visual

Studio 2005 – Parte 01


wm-26-05-2008pic01.JPG

No cenário de desenvolvimento atual é muito comum utilizar tecnologias que ajudam no desenvolvimento de aplicações como Diagrama de Classes, Casos de Uso, eXtreme Programing dentre outras.

Neste artigo iremos utilizar o Diagrama de Classes do Visual Studio para o desenvolvimento de uma aplicação. O mesmo não possui tantas funcionalidades com algumas ferramentas já conhecidas no mercado, mas pode ser de grande valia para o desenvolvimento de uma aplicação de médio porte.

Desenvolvendo a Aplicação

Para isto iremos criar um novo projeto do tipo ConsoleApplication como pode ser visto na Figura 1.

wm-26-05-2008pic02.JPG
Figura 1 – Adicionando projeto do tipo Console Application

Com o projeto criado vamos adicionar um novo item que será o Diagrama de Classes. Para adicioná-lo em nosso projeto é necessário ir ao menu Project -> Add New Item e escolher o item Class Diagram conforme pode ser visualizado na Figura 2.

wm-26-05-2008pic03.JPG
Figura 2 – Adicionando Diagrama de Classes

Desenvolvendo o Diagrama de Classes

Após adicionarmos o Diagrama de Classes o toolbox apresentará todos os itens possíveis que poderemos arrastar para o nosso diagrama como pode ser visto na

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
26/05/2008 16:32:00





Artigo - Desenvolvendo aplicações com NHibernate – Parte II

Desenvolvendo aplicações com NHibernate – Parte II

 

No artigo anterior preparamos o ambiente de desenvolvimento instalando softwares, criando banco de dados e gerando os arquivos Cs e Hbml.xml, agora chegou à hora da codificação da tela, como podemos visualizar na Figura 1.

 

jfdanhibp3fig01.jpg 

Figura 1 – Formulário de Cadastro de Empresa

 

Acredito que todos os componentes e controles são conhecidos sendo que o que merece uma observação é o BSEmpresa (BindingSource) que veremos logo em seguida.

 

Esta tela possui um TabControl que contém em uma página um PictureBox para informação da imagem do Logotipo e na outra um DataGridView para visualização de todos os registros da tabela.

 

Para este form teremos também algumas variáveis que podem ser visualizadas na Listagem 1.

 

Configuration cfg;

ISessionFactory factory;

ISession session;

ITransaction transaction;

Empresa empresa;

Listagem 1 – Variáveis do Formulário

 

A variável cfg será responsável por carregar todos os arquivos hbml.xml que estão no resource do projeto.

 

Já a variável factory será responsável por carregar as informações que definimos no App.Config como a string de conexão, qual tipo do Banco de Dados e outras informações que estejam presentes neste arquivo.

 

Através desta variável será gerada uma sessão que será armazenada pela variável session e que por sua vez irá gerar uma transação sendo armazenada na variável transaction.

 

Todo este procedimento que foi descrito sobre as responsabilidades de cada variável iremos colocá-lo no evento Load do nosso formulário como mostra a Listagem 2.

 

cfg = new Configuration();

cfg.AddAssembly(this.GetType().Assembly);

 

factory = cfg.BuildSessionFactory();

session = factory.OpenSession();

transaction = session.BeginTransaction();

 

//Recuperando uma Lista de Registros

RefreshData();

dataGridView1.DataSource = BSEmpresa;

 

dataGridView1.Columns["Codemp"].HeaderText = "Código";

dataGridView1.Columns["Codemp"].DisplayIndex = 0;

 

dataGridView1.Columns["RazSoc"].HeaderText = "Razão Social";

dataGridView1.Columns["RazSoc"].DisplayIndex = 1;

dataGridView1.Columns["RazSoc"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

 

dataGridView1.Columns["Nomefan"].HeaderText = "Nome Fantasia";

dataGridView1.Columns["Nomefan"].DisplayIndex = 2;

dataGridView1.Columns["Nomefan"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

 

dataGridView1.Columns["Endereco"].HeaderText = "Endereço";

dataGridView1.Columns["Endereco"].DisplayIndex = 3;

dataGridView1.Columns["Endereco"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

 

dataGridView1.Columns["IsChanged"].Visible = false;

dataGridView1.Columns["IsDeleted"].Visible = false;

 

txtcodigo.DataBindings.Add("text", BSEmpresa, "codemp");

txtrazao.DataBindings.Add("text", BSEmpresa, "razsoc");

txtendereco.DataBindings.Add("text", BSEmpresa, "endereco");

txtnomefan.DataBindings.Add("text", BSEmpresa, "nomefan");

piclogo.DataBindings.Add("Image", BSEmpresa, "logotipo",true);

Listagem 2 – Inicializando variáveis e configurando controles

 

Além de iniciarmos as variáveis para a persistência de dados também configuramos os controles.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
17/10/2007 20:45:00





Artigo - Desenvolvendo aplicações com NHibernate - Parte I

Desenvolvendo aplicações com NHibernate - Parte I

 

Um framework que está sendo muito utilizado para persistência de dados para a plataforma Dot.Net é o NHibernate.

 

Através dele podemos fazer um mapeamento entre a classe do nosso projeto e a tabela de nosso Banco de Dados.

 

A vantagem é que não precisaremos codificar nenhum comando SQL para carregar, incluir ou excluir dados do Banco de Dados, mas como desvantagem é que para cada tabela temos que gerar um arquivo de Mapeamento, mesmo tendo ferramentas que auxiliam neste trabalho, não deixa de ser algo trabalhoso.

 

Neste artigo iremos preparar o ambiente de desenvolvimento com o download e configuração de ferramentas que nos ajudarão no desenvolvimento da aplicação utilizando este Framework.

 

Primeiramente deveremos instalar o NHibernate pelo link http://sourceforge.net/project/showfiles.php?group_id=73818&package_id=73969.

 

Depois de instalado, o segundo passo é criar um projeto do tipo Windows Application, como mostra a Figura 1.

 

jfdanhip1fig01.jpg 

Figura 1 – Criando um novo projeto do tipo Windows Application

 

Após ter criado o projeto, iremos adicionar a referência do NHibernate que acabamos de instalar, incluindo a DLL NHibernate.dll. Para adicionar a referência basta clicar com o botão direito em cima da pasta References e depois clicar em Add Reference, como mostra a Figura 2.

 

jfdanhip1fig02.jpg 

Figura 2 – Adicionando Referência do NHibernate

 

Bom, com o projeto criado e a referência informada vamos iniciar a parte da criação da tabela no banco de Dados. Para nosso teste vamos criar uma tabela com a estrutura apresentada na Listagem 1.

 

CREATE TABLE Empresa(

CODEMP    bigint IDENTITY(1,1) NOT NULL,

RAZSOC    nvarchar(150)            NULL,

NOMEFAN   nvarchar(150)            NULL,

ENDERECO  nchar(300)               NULL,

LOGOTIPO  image                    NULL,

CONSTRAINT PK_Empresa PRIMARY KEY (CODEMP))

Listagem 1 – Código SQL da tabela Empresa

 

Ao ser criada o Banco de Dados com a tabela acima, vamos iniciar os trabalhos para que conseguamos conectar ao Banco e incluir, excluir e alterar registros nesta tabela.

 

O primeiro passo será gerar a string de conexão para quando a nossa acplicação for executada ela consiga conectar ao Banco de Dados.

 

Antes iremos adicionar em nosso projeto um arquivo de configuração, nele que fazeremos a primeira configuração com relação ao NHibernate.

 

Para isso será necessário adicionar um novo item clicando com botão direito do mouse no Projeto -> Add -> New Item, escolhendo assim a opção Application Configuration File, como mostra a Figura 3.

 

jfdanhip1fig03.jpg 

Figura 3 – Adicionando arquivo de configuração

 

Após ter adicionado o arquivo de configuração, deveremos configurá-lo informando servidor, banco de dados e outros itens conforme a Listagem 2.

 

Neste arquivo de configuração informamos o provider do NHibernate que estamos utilizando, a string de conexão para conectarmos ao Banco de Dados. Sendo assim, sempre que executarmos a aplicação o sistema conectará automaticamente ao Banco de Dados.

 

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

Desenvolvendo aplicações utilizando XML

 

Bom pessoal, hoje em dia é comum em ouvir falar de arquivos XML, mas o que são estes arquivos.

 

XML vem de eXtensible Markup Language ou Linguagem padronizada de marcação capaz de descrever diversos tipos de dados, bastante utilizado na Internet para transferência de informações e entre outras funcionalidades.

 

Bom, neste artigo irei demonstrar que os arquivos XML podem ser utilizados como um Banco de Dados, armazenando os dados inseridos em uma aplicação e permitindo realizar pesquisas, alteração e exclusão destes dados.

 

Para isto iremos criar um projeto do tipo Windows Application, conforme imagem da Figura 1.

 

jfdauxmlfig01.jpg 

Figura 1 – Criando um novo projeto do tipo Windows Application.

 

Após ter criado o projeto, iremos preparar nossa Base de Dados, iremos inserir um DataSet.xsd, em Adicionar Novo item -> DataSet, como pode ser visualizado na Figura 2.

 

Este DataSet utilizaremos para criarmos todas as tabelas que nossa aplicação utilizará, podendo criar relações, chaves primárias e outras funcionalidades que possui em um Banco de Dados.

 

jfdauxmlfig02.jpg 

Figura 2 – Adicionando um DataSet.xsd.

 

Ao adicionar o DataSet, aparecerá uma região onde poderemos iniciar a criação das tabelas, sendo que no Toolbox já aparecerá todos os itens que poderão ser adicionados naquela região, conforme pode ser visto na Figura 3.

 

jfdauxmlfig03.jpg 

Figura 3 – Criando as tabelas no DataSet.

 

Chamamos este DataSet de DataSet Tipado, devido o mesmo já possuir o Schema referente à estrutura das tabelas. Sendo assim criaremos todos os objetos para nossa aplicação neste DataSet.

 

Sempre que precisar alterar uma propriedade de coluna recém criada, como por exemplo alterar o tipo da mesma, isso você conseguirá indo na PropertyGrid de propriedades.

 

jfdauxmlfig04.jpg 

Figura 4 – Estrutura do Banco de Dados.

 

Na Figura 4 podemos verificar como ficou a estrutura do nosso Banco de Dados. Definimos as chaves primárias das tabelas, informamos campos que são Auto Incremento (Codfun, CodCargo, CodCid) e ainda fizemos as relações.

 

Sendo assim, vamos prosseguir o desenvolvimento de nossa aplicação, desenvolvendo os forms para que possamos inserir dados nestas tabelas.

 

No final teremos em nossa aplicação quatro forms, um menu principal e um form para cada tabela que criamos, como pode ser visto nas imagens abaixo.

 

jfdauxmlfig05.jpg 

Figura 5 – Tela de cadastro de Cidades.

 

jfdauxmlfig06.jpg 

Figura 6 – Tela de cadastro de Cargos.

 

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
23/07/2007 16:17:00





Artigo - Desenvolvendo Aplicações para Pocket PC – Parte IV

Desenvolvendo Aplicações para Pocket PC – Parte IV

 

Neste artigo teremos como objetivo o seguinte item:

 

 - Realizar o sincronismo de dados através de um WebService.

 

Continuando o nosso pequeno projeto, no último artigo implementamos o Form do Cliente, conseguimos realizar conexão com o nosso Banco de dados, implementamos a classe que trata da parte de conexão com o Banco de Dados e os métodos de gravar, excluir e pesquisar.

 

Agora, implementaremos um cenário que é muito comum de acontecer, que é a sincronização de dados do Pocket com o Banco de Dados de uma determinada aplicação para Desktop.

 

Esta sincronização pode acontecer de várias formas sendo que a mais comum seja através de um WebService.

 

Sendo assim iremos importar a reference de um WebService para nosso projeto e realizar as funções Importar e Exportar dados, as quais foram implementadas no mesmo.

 

A primeira etapa será a implementação de um WebService na nossa solução, não serei muito detalhista nesta parte, pois o que nos interessa é saber como usar o WebService em nosso projeto.

 

Para isto teremos que incluir em nossa Solução um novo projeto que será do tipo Web Site como mostra a Figura 1.

 

jfdappcp4fig01.jpg 

Figura 1 – Adicionando um Projeto Web Site na solução.

 

Ao criar este projeto aparecerá uma nova tela para a escolha do template a ser usado como mostra a Figura 2, sendo o que iremos utilizar será o Web Service.

 

jfdappcp4fig02.jpg 

Figura 2 – Escolhendo o template a ser utilizado.

 

Bom adicionado o projeto do tipo WebSerice, implementaremos dois métodos, Importar e Exportar dados, estes serão responsáveis por realizar a ligação entre o Pocket PC e o Servidor de Banco de Dados.

 

Bom lembrando, que após o término do WebService, para que possamos utilizá-lo em nossa aplicação este deverá ser publicado no IIS.

 

A segunda parte, será acrescentar a referência do Pocket em nossa aplicação, para isto clique com o botão direto do mouse em Reference e depois escolha a opção WebReference, irá aparecer uma tela de acordo com a Figura 3.

 

jfdappcp4fig03.jpg 

Figura 3 – Adicionando uma Web Reference.

 

Nesta tela podemos adicionar um WebService

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2007 11:17:00





Artigo - Desenvolvendo Aplicações para Pocket PC – Parte III

Desenvolvendo Aplicações para Pocket PC – Parte III

 

Neste artigo teremos como objetivo os seguintes itens:

 

 - Gravar, excluir e pesquisar dados.

 - Entender e utilizar os componentes DataSet, BindingSource.

 - Entender e utilizar as classes SqlCeDataAdapter e SqlCeCommandBuilder.

 

Bom continuando o nosso pequeno projeto, no último artigo configuramos nosso ambiente de desenvolvimento com SQL Móbile, com nosso Banco de Dados criado faltando agora realizar as regras de negócio e a interface do mesmo.

 

Como já temos a tabela Cliente em nosso Banco de Dados, vamos desenvolver uma tela onde será possível gravar e excluir dados.

 

Primeiramente iremos criar um novo projeto do tipo Smart Device, para Windows Pocket PC 5.0 conforme Figura 1.

 

jfdapp3fig01.jpg 

Figura 1 - Criando projeto para Smart Device.

 

Ao criar o projeto o Visual Studio irá apresentar um form, este será o nosso form principal, nesse colocaremos um menu para acessar a todas as telas. Para início foram definidos dois MenuItem: Sair e Cliente como pode ser visto no Figura 2.

 

O MenuItem Sair será responsável por finalizar a aplicação no Pocket PC, para isto será necessário implementar o código que pode ser visto na Listagem 1.

 

private void menuItem1_Click(object sender, EventArgs e)

{

    Application.Exit();

}

Listagem 1 – Código para encerrar a aplicação no Pocket PC

 

jfdapp3fig02.jpg 

Figura 2 – Aplicação com os Menus Cliente e Sair.

 

Agora vamos criar um novo form, este será utilizado para cadastrarmos os dados do Cliente, como mostra a Figura 3.

 

jfdapp3fig03.jpg 

Figura 3 - Tela para cadastro de clientes.

 

O código necessário para instanciar o form Cliente e apresenta-lo no Pocket PC pode ser visto na Listagem 2.

 

private void menuItem2_Click(object sender, EventArgs e)

{

  Cliente cliente = new Cliente();

  cliente.Show();

}

Listagem 2 – Código necessário para instanciar o form Cliente.

 

Após termos implementados os dois forms e tratado a chamada para o form Cliente, trataremos agora o parte de conexão com o Banco de Dados.

 

No artigo passado ao criarmos o Banco de Dados, definimos qual seria o caminho do mesmo, pois bem, este caminho será necessário para que possamos conectar ao Banco de Dados.

 

Para isto iremos criar uma classe Conexao que tratará todos os métodos que vamos precisar para conectar ao Banco, realizar uma pesquisa e outros. Para adicionar uma classe no nosso projeto, clicamos com o botão direto do mouse sobre o Projeto no ToolBox Solution Explorer e depois Add -> Class, como pode ser visto na Figura 4.

 

jfdapp3fig04.jpg 

Figura 4 – Adicionando uma nova classe no projeto.

 

Após termos adicionado a Classe Conexao, iremos em seu código e passaremos a mesma para uma classe Estática, ou seja, para executar seus métodos não será necessário instanciar um objeto desta classe, a chamada será executada da própria classe.

 

O primeiro método que iremos criar é de Conectar(). Que será responsável por verificar se o banco de Dados existe e conectar ao mesmo.

 

Para trabalharmos com comandos de acesso a Dados no Pocket PC, necessitamos de utilizar uma referência em nosso projeto que é System.Data.SqlServerCe para móbile. Para isto, botão direito em Reference -> Add e será apresentada a imagem conforme Figura 5, após escolha a referência que deseja utilizar e clique em OK.

 

jfdapp3fig05.jpg 

Figura 5 - Adicionando referência para System.Data. SqlServerCe.

 

Ao terminar este primeiro método a classe Conexao até o momento se encontra de acordo com a Listagem 3.

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.SqlServerCe;

using System.Windows.Forms;

 

namespace PocketIII

{

  public static class Conexao

  {

    public static SqlCeConnection conexao;

   

    public static void Conectar()

    {

      string stringconexao = "Data Source = \\My Documents\\First.sdf;";

      conexao = new SqlCeConnection(stringconexao);

      try

      {

        conexao.Open();

      }

      catch(Exception e)

      {

        MessageBox.Show("Não foi possível conectar devido ao erro : " + e.Message);

        Application.Exit();

      }

    }

 

  }

}

Listagem 3 – Classe Conexao após ter sido implementado o método Conectar.

 

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
14/05/2007 22:51:00





Artigo - Desenvolvendo aplicações para Pocket PC – Parte II

Desenvolvendo aplicações para Pocket PC – Parte II

 

Neste artigo teremos como objetivo os seguintes itens:

 

 - Instalar o Compact FrameWork 2.0 no Pocket PC

 - Instalar o SQL Móbile e o Query Analyzer para o Pocket PC

 - Construir nosso primeiro Banco de Dados

 

Primeiramente, no micro já deverá está instalado o Microsoft ActiveSync 4.0 ou superior para que possamos realizar as atualizações. Este aplicativo pode ser baixado do site da Microsoft gratuitamente.

 

Após ter instado o mesmo, executaremos o Emulador direto da pasta de Emuladores que foi criada ao instalar o Visual Studio, normalmente em C:\Arquivos de programas\Microsoft Device Emulator\1.0\dvcemumanager.exe. Ao executar aparecerá tela conforme pode ser visualizado na Figura 1.

 

jfdapcp2fig01.jpg 

Figura 1 – Escolhendo o modelo do Emulador para ser iniciado.

 

Como estaremos realizando testes para Windows Móbile 5.0, escolheremos a primeira opção do Windows Móbile 5.0 Pocket SDK. Para iniciá-lo, clicar com o botão direito do mouse e clicar em Conect.

 

Após o emulador ser carregado, voltar à opção anterior clicando com o botão direto do mouse e clicando em Cradle. Está opção juntamente com uma configuração no ActiveSync permite simular sincronismo entre Emulador e ActiveSync.

 

A opção correspondente no ActiveSync deverá ser marcada indo no menu Arquivo -> Configurações de conexões. Aparecerá a tela mostrada na Figura 2.

 

jfdapcp2fig02.jpg 

Figura 2 – Tela de configuração do ActiveSync.

 

Deverá marcar a terceira opção e escolher a opção DMA no comboBox. Após isto poderá clicar em Conectar, sendo realizado a conexão entre o ActiveSync e o Emulador.

 

Instalando Compact FrameWork 2.0

Com todos os itens acima executados e funcionando corretamente, estamos prontos para instalar o Compact FrameWork 2.0 no emulador. A instalação é bem simples, é somente executar o arquivo C:\Arquivos de Programas\Microsoft Visual Studio 8\SDK\v2.0\CompactFramework\netcfsetupv2.msi e quando a instalação terminar o ActiveSync automaticamente instalará no Emulador aparecendo uma tela conforme Figura 3.

 

jfdapcp2fig03.jpg

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
29/04/2007 09:28:00





Artigo - Desenvolvendo Aplicações para Pocket PC – Parte I

Desenvolvendo Aplicações para Pocket PC – Parte I

 

Para iniciarmos o desenvolvimento de uma aplicação para Pocket PC, a primeira etapa acontece quando escolhemos o tipo de projeto a ser criado.

 

Como é mostrado na Figura 1, escolhemos o projeto do tipo Smart Device e para o equipamento Windows Móbile 5.0 Pocket PC.

 

jfdapcp1fig01.jpg 

Figura 1 – Escolhendo o tipo do projeto a ser desenvolvido.

 

Em seguida será apresentado um form já com as dimensões do Pocket PC como é mostrado na Figura 2, sendo assim pronto para ser desenvolvido.

 

jfdapcp1fig02.jpg 

Figura 2­ – Form para desenvolver para Pocket PC.

 

Agora só nos resta iniciar o desenvolvimento, no nosso exemplo vamos implementar dois menus um para apresentar uma mensagem “Hello World!” e outro para fechar o sistema.

 

Quando incluímos um form no nosso projeto, este já vem com um MainMenu. Sendo assim foram incluídos dois itens neste e implementado o evento OnCLik como pode ser visto na Listagem 1, que possui os código para apresentar a mensagem na tela e o outro que fecha o form corrente.

 

    private void menuItem1_Click(object

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
11/04/2007 22:58:00





Artigo - Gerando comandos de inserção, alteração e delete automaticamente

Hoje o Visual Studio possui um wizard para que possamos conectar ao Banco de Dados, selecionar qual objeto do Banco vamos utilizar, e já criar um form para este objeto, gerando sozinho todos os comandos de Insert, Update e Delete para o TableAdapter.

O problema é que, ao fazer isto nossa aplicação fica amarrada a aquele Banco de Dados, e toda modificação em nossa tabela, deveremos atualizar o DataSet Tipado que foi gerado, para que possa ser atualizado os comandos.

Como deixar nossa aplicação mais flexível para acesso a Banco de Dados distintos e não tendo a preocupação de toda vez que modificar a tabela seja necessário atualizar o DataSet Tipado?

Hoje podemos contar com o CommandBuilder. Esta classe possui em todos os providers de Banco de Dados para  Dot.net, no nosso exemplo vamos usar o do SQL Server.

Então teremos um classe estática onde será implementado a geração dos códigos, como pode ser visto na Listagem 1.

Listagem 1: Classe que será responsável para geração dos comandos.

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient; // Pois o nosso exemplo é para SQL Server
namespace CommandBuilder
{
    public static class  AcessoDados
    {
    }
}

Nesta classe teremos um método que receberá como parâmetro a consulta de select a ser executada. Estamos partindo do pressuposto que a aplicação já está conectada, nossa classe ficará como é mostrado na Listagem 2.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
27/03/2007 12:05:00





Artigo - Recuperando arquivos do Resource do Projeto

Recuperando arquivos do Resource do Projeto

 
Bom pessoal, para quem precisa utilizar um arquivo seja ele imagem, dll, ou qualquer outro tipo de arquivo e para isto está tendo que colocá-lo na pasta junto com o executável, este artigo pode dar uma idéia bem prática para resolver esta situação.

Hoje, quando inserimos alguma imagem ou arquivo, o Visual Studio já inclui no projeto uma pasta Resources como pode ser visto na Figura 1.
      

jfrarpfig01.jpg
Figura 1
– Pasta resources gerado pelo VS ao incluir arquivo no resources do projeto

Os arquivos contidos nesta pasta podem ser recuperados em qualquer lugar do projeto, podendo ser lido, apresentado ou copiado para algum diretório.

Para que possamos recuperar este arquivo, temos que seguir as seguintes regras:

 - A propriedade Build Action dos arquivos deve estar marcada como Embedded Resource, para configurar é necessário visualizar as propriedades do arquivo e selecionar este valor, como pode ser visto na Figura 2.

- Todas as classes do projeto podem recuperar estes arquivos, exceto as classes Estáticas.

jfrarpfig02.jpg
Figura 2 – Configurando a propriedade Build Action dos arquivos do Resources

Uma vez realizada as configurações dos arquivos, nos resta agora gerar o código para que se possa recuperar o stream do arquivo que está no Resource e pronto. Para isto será necessário implementar o código que

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
21/03/2007 02:14:00





Artigo - Salvando imagens no banco de dados

Salvando imagens no banco de dados

 

Bom pessoal, hoje quero mostrar como podemos salvar uma imagem no Banco de dados de forma genérica, ou seja, que possa ser utilizado para qualquer Banco de Dados.

 

Muitos já devem ter visto métodos que realiza tal função, mas utilizando parâmetros. Mas como atualmente é muito comum à mesma aplicação pode ser utilizada com vários tipos de Banco de Dados, este método será muito útil para quem tem que manipular imagens no Banco de Dados.

 

Bom para isto, será necessário utilizarmos alguns objetos que são eles:

 

- DataSet – objeto que será responsável por conter os dados antes que enviemos para o Banco de Dados.

 

 - BindingSource – objeto responsável por realizar a ligação do objeto que está na tela com o campo que está na tabela, além de controlar as inserções, exclusões e atualizações no DataSet.

 

- IDataAdapter – objeto responsável por atualizar carregar o DataSet e atualizar as alterações realizadas no mesmo no Banco de Dados.

 

- PictureBox – Objeto que receberá a imagem que está no Banco de Dados ou a nova imagem.

 

Ao carregar o Form, utilizaremos o IDataAdapter para carregar o DataSet com o conteúdo da tabela. Sendo assim, teremos que verificar qual conexão que está ativa e realizar a inicialização do IDataAdapter. Levando em consideração se tivéssemos trabalhando com o Banco de Dados Oracle, o comando ficaria assim:

 

 IDataAdapter adapter = new OracleDataAdapter("SELECT * FROM DESENHO", (OracleConnection)conex);

 

OracleCommandBuilder

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
25/01/2007 20:15:00





Artigo - Manipular dados em campos BLOB no Firebird com C#(csharp)

Manipular dados em campos BLOB no Firebird com C#

 

Quem já precisou recuperar uma informação em um campo Blob do Firebird e o resultado através do DataSet foi somente “System.Array”.

 

Bom, recuperar informações em campos Blob do Firebird não é tão simples, requer um pouco de trabalho para ter a informação “traduzida”, e neste artigo pretendo passar o que fazer para recuperar esta informação.

 

Para isto, foi necessário criar um método que receba um Array de bytes ou a consulta a ser executada, neste exemplo optei por receber o comando SQL a ser executado, como pode ser visto a assinatura no método abaixo.

 

Exemplo:

  

public string ConsultaBlobFirebird(string consulta);

 

Sendo assim, o método deverá realizar a consulta no Banco de Dados, retornando a coluna Blob, e em seguida realizar o tratamento, este passo pode ser visto abaixo:

 

FbCommand comando = new FbCommand();

comando = conex.CreateCommand();

comando.CommandText = consulta;

FbDataReader reader = comando.ExecuteReader();

 

No código é declarado uma variável do tipo FbCommand chamada comando, que será responsável por receber nossa instrução SQL e retornar um DataReader com os dados. Outra variável que se encontra neste código é a reader do tipo FbDataReader, esta variável nos auxiliará na transformação dos dados que se encontram em Array de bytes para string. A variável conex é uma variável do tipo FbConection, sendo que antes de chamar este método ela já foi instanciada e a conexão se encontra aberta.

 

Após já termos os dados recuperados, através do método ExecuteReader() da variável comando, iniciaremos o tratamento dos dados. Abaixo, segue mais declarações a serem feitas para a continuação da construção deste método:

 

      string texto = "";

      Byte[] blob = null;

      MemoryStream ms = new MemoryStream();

 

A variável texto será usada somente para atribuir os dados transformados para string, a variável blob cujo o tipo é um Array  de

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
04/01/2007 10:11:00





Artigo - Boas Vindas a Jhonatan Fernando

Boas Vindas a Jhonatan Fernando

 

Em primeiro lugar, gostaria de agradecer a oportunidade que me foi dada pelo Eduardo Spínola, de participar deste grande Portal para que possamos trocar conhecimentos, trocar informações e espero contribuir com o crescimento do mesmo.

 

Meu nome é Jhonatan Fernando, sou formado em Ciência da Computação pela Universidade de Itaúna, na cidade de Itaúna, Minas Gerais, a qual fica aproximadamente 76 km da capital mineira, Belo Horizonte. Atualmente trabalho como Analista de Sistema/Desenvolvedor C#, desenvolvendo aplicações para Pocket PC e Client/Server utilizando a tecnologia .Net.

 

Não domino totalmente a linguagem C#, devido ter pouco tempo que trabalho com ela, mas sempre procuro me manter informado e atualizado. Darei foco aos meus artigos em C#, para desenvolvimento para Pocket PC e para WindowsForms.

-->">
26/10/2006 16:15:00





 

Jhonatan Fernando (jhonatanfernando@yahoo.com.br), Bacharel em Ciência da Computação pela Universidade de Itaúna/MG. Experiência com desenvolvimento de aplicações para Gestão Empresarial utilizando a IDE Delphi 7.0. Atualmente como Analista de Sistema/Desenvolvedor C# desenvolvendo aplicações para Pocket PC e WindowsForms utilizando a tecnologia Dot.Net.
Arquivo de atualizações
 2008
 2007
 2006

Estatísticas do Autor:
Número de posts: 15
Características dos posts deste autor:
Conteúdo:
Utilidade:
39 20
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group