| Últimas 20 atualizações de JHONATAN FERNANDO |
|
|
Utilizando DataSet como Tabela Temporária

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.
 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
|
|
|
|
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
|
|
|
|
Utilizando Diagrama de Classes do Visual
Studio 2005 – Parte 01

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.
 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.
 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
|
|
|
|
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.
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
|
|
|
|
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.
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.
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.
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.
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.
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.
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.
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.
Figura 5 – Tela de cadastro de Cidades.
Figura 6 – Tela de cadastro de Cargos.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
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.
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.
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.
Figura 3 – Adicionando uma Web Reference.
Nesta tela podemos adicionar um WebService
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
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.
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
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.
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.
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.
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
|
|
|
|
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.
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.
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.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
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.
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.
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
|
|
|
|
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
|
|
|
|
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.
 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.
 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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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. -->">
|
|
|
| |
|