none
Cadastro de clientes C# e base de dados MS-Access

    Question

  • Boa tarde pessoal, sou novo no fórum, estudante de Sistemas de Informação. Para início do semestre meu professor de programação pediu que fizéssemos um programa de cadastro de clientes. O mesmo deve ser em C# e com base de dados MS_Access, deve rodar local. 

    Gostaria de um passo a passo de como desenvolver tal sistema, se puderem me auxiliar, enviar links de tutoriais, preciso de um sistema completo, que no final deverá ser compilado e transformado em um software. É um sistema simples porém muito cheio de peculiaridades. Poderiam me dar uma luz, de como começar a fazer isso?

    Agradeço desde já a atenção. 

    Sunday, February 13, 2011 5:36 PM

Answers

  • A primeira coisa que tens de fazer e criar a base de dados. Dentro da base de dados Crias as tabelas. 

    So assim podes comecar a programar em C#. 

    Voce vai precisar a conecao: http://www.connectionstrings.com/

    Quantas camadas o teu professor quer, N-Tier ou simplesmente uma aplicacao basica?

     


    Just Be Humble Malange!
    Monday, February 14, 2011 4:17 PM
  • Se você usar SQL então o cliente terá que o ter o SQL instalado, mas isto pode ser de 2 maneiras, você pode instalar o SQL em cada máquina que receberá o software, o que não faz muito sentido se as informações forem compartilhadas, assim neste caso você teria que instalar o SQL em um servidor, para assim todos os usuários da empresa que utilizam seu software, utilizem a mesma base de dados.

    Mas se for um software que terá um banco por máquina (modelo e 1 camada), você pode fazer uso do SQL Express.

    Bom já que esta estudando vale a pena este link:

    http://www.microsoft.com/brasil/msdn/tecnologias/arquitetura/Layers_Developing.mspx

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Monday, February 14, 2011 4:25 PM
  • Preciso de um sistema simples, meu professor não pediu a quantidade de camadas, desta forma trabalharei com uma camada só. Então, criei o db access e sua respectiva tabela (criei somente uma tabela com os devidos campos, ainda tenho dificuldade em relacionamentos de tabelas)... Como posso copiar a estrutura da tabela no access 2007? assim postarei aqui para que possam ver, e analisar se a estrutura está correta.
    Cursando 3º período de Sistemas de Informação pela Pontifícia Universidade Católica de Minas Gerais - PUCMG

    Para criar Relacoes aqui vai um exemplo: http://databases.about.com/od/tutorials/l/aarelationship1.htm

     


    Just Be Humble Malange!
    Tuesday, February 15, 2011 1:44 PM
  • Se você só vai querer armazenar os nomes dos filhos, então você pode criar uma nova tabela e fazer o relacionamento dom a tabela de pais.

    Já no aplicativo, você pode criar somente um campo de cadastro de filhos e ir verificando se a quantidade cadastrada é menor ou igual a quantidade cadastrada, ou criar os controles dinamicamente com a quantidade exata que ele cadastrou.

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Sunday, February 20, 2011 6:02 PM

All replies

  • No link abaixo tem a parte 1 depois é só ir pesquisando as partes seguintes.

    http://www.devmedia.com.br/post-16743-Cadastro-de-Clientes-em-C--usando-conceitos-de-ADO-NET-Parte-1.html

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Sunday, February 13, 2011 6:25 PM
  • Grande tutorial Luiz, farei, usarei os codigos c# porém com base de dados Access ao invés SLQ. Uma dúvida, talvez até meio boba. Suponhamos que eu precise colocar esse sistema para rodar local em um pc do escritório de uma empresa, usando o SQL SEVER como banco de dados, eu teria que instalar essa base de dados no pc da empresa para que o programa rode, ou teria outra forma de faze-lo funcionar sem a instalação do mesmo? 

    Agradeço a ajuda


    Cursando 3º período de Sistemas de Informação pela Pontifícia Universidade Católica de Minas Gerais - PUCMG
    Monday, February 14, 2011 3:05 PM
  • A primeira coisa que tens de fazer e criar a base de dados. Dentro da base de dados Crias as tabelas. 

    So assim podes comecar a programar em C#. 

    Voce vai precisar a conecao: http://www.connectionstrings.com/

    Quantas camadas o teu professor quer, N-Tier ou simplesmente uma aplicacao basica?

     


    Just Be Humble Malange!
    Monday, February 14, 2011 4:17 PM
  • Se você usar SQL então o cliente terá que o ter o SQL instalado, mas isto pode ser de 2 maneiras, você pode instalar o SQL em cada máquina que receberá o software, o que não faz muito sentido se as informações forem compartilhadas, assim neste caso você teria que instalar o SQL em um servidor, para assim todos os usuários da empresa que utilizam seu software, utilizem a mesma base de dados.

    Mas se for um software que terá um banco por máquina (modelo e 1 camada), você pode fazer uso do SQL Express.

    Bom já que esta estudando vale a pena este link:

    http://www.microsoft.com/brasil/msdn/tecnologias/arquitetura/Layers_Developing.mspx

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Monday, February 14, 2011 4:25 PM
  • Preciso de um sistema simples, meu professor não pediu a quantidade de camadas, desta forma trabalharei com uma camada só. Então, criei o db access e sua respectiva tabela (criei somente uma tabela com os devidos campos, ainda tenho dificuldade em relacionamentos de tabelas)... Como posso copiar a estrutura da tabela no access 2007? assim postarei aqui para que possam ver, e analisar se a estrutura está correta.
    Cursando 3º período de Sistemas de Informação pela Pontifícia Universidade Católica de Minas Gerais - PUCMG
    Monday, February 14, 2011 7:31 PM
  • Preciso de um sistema simples, meu professor não pediu a quantidade de camadas, desta forma trabalharei com uma camada só. Então, criei o db access e sua respectiva tabela (criei somente uma tabela com os devidos campos, ainda tenho dificuldade em relacionamentos de tabelas)... Como posso copiar a estrutura da tabela no access 2007? assim postarei aqui para que possam ver, e analisar se a estrutura está correta.
    Cursando 3º período de Sistemas de Informação pela Pontifícia Universidade Católica de Minas Gerais - PUCMG

    Para criar Relacoes aqui vai um exemplo: http://databases.about.com/od/tutorials/l/aarelationship1.htm

     


    Just Be Humble Malange!
    Tuesday, February 15, 2011 1:44 PM
  • Quero aprender muito no desenvolvimento deste sistema, resolvi ir fazendo por partes, aprendendo cada conceito... Para começar a conexão com o Access. Criei a base de  dados conforme estrutura abaixo

     

    • BD = CadClientes.mdb 
    • Tabela: tbClientes

     

    Campos da tabela:

    1. id => numeração automática / chave primária
    2. nomeMarido => texo
    3. nomeEsposa => texo
    4. nascMarido => texto
    5. nascEsposa => texto
    6. endereco => texto
    7. telComercial => número
    8. telCelular => número

    Criei um windows form com 3 botões (inserir, excluir, visualizar), a princípio quero fazer o cadastro, inserir os dados no BD, sem que o usuário informe os dados para isso usei o seguinte código dentro do evento do botão inserir:

    using System.Data.OleDb; // adicionei no inicio do documento
    string sql;
     OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:/BRUNO/SI_Faculdade/CadClientes/CadClientes.mdb.accdb");
     
     //Passando a instrução no sql
    
     sql = "Insert Into tbClientes( nomeMarido, nomeEsposa, nascMarido, nascEsposa, endereco,telComercial, telCelular) Values(@ nomeMarido, @nomeEsposa, @nascMarido, @nascEsposa, @endereco, @telComercial, @telCelular)";
     OleDbCommand cmd = new OleDbCommand(sql,conn);
     
     //Abre conexão 
    
     conn.Open();
     //Passo os valores a serem preenchidos 
    
     cmd.Parameters.AddWithValue("@ nomeMarido", "Joao");
     cmd.Parameters.AddWithValue("@ nomeEsposa", "Maria");
     cmd.Parameters.AddWithValue("@ nasMarido", "26/05/1970");
     cmd.Parameters.AddWithValue("@ nasEsposa", "25/02/1975");
     cmd.Parameters.AddWithValue("@ endereco", "rua A");
     cmd.Parameters.AddWithValue("@ telComercial", "3333333");
     cmd.Parameters.AddWithValue("@ telCelular", "4444444");
     cmd.ExecuteNonQuery(); // o erro ocorre aqui
    
     //fecho a conexão 
    
     conn.Close(); 
    
    Porem ao clicar no botão inserir recebo o seguinte erro de execução:
    cmd.ExecuteNonQuery(); => Erro de sintaxe (operador faltando) na expressão de consulta '@ nomeMarido'.
    

    A conexão está correta?
    Estou me baseando nos tutoriais dos links abaixo


    Outra dúvida:  Nesta linha de conexão com o bd eu tive que alterar o sentido da barra que separa os diretórios de caminho do bd conforme abaixo:


    • ANTIGA

    OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:<strong>\</strong>BRUNO<strong>\</strong>SI_Faculdade<strong>\</strong>CadClientes<strong>\</strong>CadClientes.mdb.accdb");
    

    • ALTERADA

    OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:<strong>/</strong>BRUNO<strong>/</strong>SI_Faculdade<strong>/</strong>CadClientes<strong>/</strong>CadClientes.mdb.accdb");

    O primeiro modelo gerou erro de compilação, alguém pode me explicar o porque? 
    No mais me desculpe tantas perguntas, mais é porque realmente quero aprender o funcionamento da coisa e sei que podem me ajudar. Agradeço a atenção de todos

    Abraços.

     


    Cursando 3º período de Sistemas de Informação pela Pontifícia Universidade Católica de Minas Gerais - PUCMG
    Tuesday, February 15, 2011 7:59 PM
  • Sua primeira dúvida, o erro deve ser porque o parametro contem espaços em branco, tire os espacos em branco tanto no comando sql e nos parametros.

    Quanto a sua segunda dúvida, a primeira maneira não funcionou, pois o "\" é um caracterer especial para isso você pode fazer de duas formas:

    Primeira colocar duas barras.
    "C:\\diretoritorio\\arquivo.mdb""

    ou iniciar com @ antes da string

    @"c:\diretorio\arquivo.mdb"

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Tuesday, February 15, 2011 8:05 PM
  • Eitcha!!! Depois de muito tempo estou de volta..

    Bem dando prosseguimento... Realmente os erros eram esses Luiz Estevam, retirei os espaços e alterei a barra simples (\) para duas barras(\\), funcionou perfeitamente, já consigo inserir, excluir e atualizar os dados da tabela. 

    Bem minha próxima duvida é: Tenho um campo no meu form que permite que  o cliente coloque a quantidade de filhos que ele tem. Necessito cadastrar os nomes do filhos, mais como posso fazer isso sem saber a quantidade correta? Se eu deixar um campo para nome e o cliente tiver 3 filhos?

    Pensei em criar uma tabela para filhos, e fazer apenas um cadastro inicial do cliente, logo após para atualização dos dados aí sim eu dava a opção de cadastrar os nomes dos filhos, ou seja, o cliente cadastra o nome do filho e logo após o cadastro eu pergunto se ele deseja cadastrar outro filho, se sim dou um clear() e permito o novo cadastro, algo desse tipo.. Não sei se é a forma mais correta... Podem me ajudar????

     

    Criei um novo tópico simples também, sobre método de ordenação de string se puderem me ajudar neste problema tbm.... segue o link abaixo

    http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/a4ab18bd-13d1-43fa-8f31-60b4fab15d77

    Abraços


    Cursando 3º período de Sistemas de Informação pela Pontifícia Universidade Católica de Minas Gerais - PUCMG
    Sunday, February 20, 2011 3:11 PM
  • Se você só vai querer armazenar os nomes dos filhos, então você pode criar uma nova tabela e fazer o relacionamento dom a tabela de pais.

    Já no aplicativo, você pode criar somente um campo de cadastro de filhos e ir verificando se a quantidade cadastrada é menor ou igual a quantidade cadastrada, ou criar os controles dinamicamente com a quantidade exata que ele cadastrou.

    Abraço

    Estevam


    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    Sunday, February 20, 2011 6:02 PM
  • Boa tarde amigos do fórum, estou com algumas dúvidas em relação ao desenvolvimento do sistema de cadastro que estou criando. Segue abaixo:

     

     

    • No form de cadastro coloquei um maskedTextBox para alocar a data do cadastro. Gostaria que ao abrir o form, nessa masked, já apareça a data do sistema e ao gravar os dados que esta data seja alocada no banco de dados, tentei algumas funções que vi na net mais nenhuma deu certo. 
    • Criei um dataGrid, gostaria que o mesmo seja atualizado através de um botão no form frmListaClientes. Tentei chamar novamente este método no evento click do botão
      private void frmListaClientes_Load_1(object sender, EventArgs e)
      {
       // TODO: This line of code loads data into the 'bdClientesDataSet.clientes' table. You can move, or remove it, as needed.
       this.clientesTableAdapter.Fill(this.bdClientesDataSet.clientes);   
    
      }
    
    
    chamei desta forma
      private void tsbAtualizar_Click(object sender, EventArgs e)
      {
       frmListaClientes_Load_1(sender, e);
      }
    
    Sou muito leigo ainda em desenvolvimento e isso aí não funcionou, esta certo? tem outra forma mais fácil para eu conseguir atualizar o GridView?

    Agradeço desde já à ajuda

    Cursando 3º período de Sistemas de Informação pela Pontifícia Universidade Católica de Minas Gerais - PUCMG
    Wednesday, March 09, 2011 4:02 PM
  • A primeira coisa que tens de fazer e criar a base de dados. Dentro da base de dados Crias as tabelas. 

    So assim podes comecar a programar em C#. 

    Voce vai precisar a conecao: http://www.connectionstrings.com/

    Quantas camadas o teu professor quer, N-Tier ou simplesmente uma aplicacao basica?

     


    Just Be Humble Malange!
    Por favor estou precisando de ajuda, Fiz uma pesquisa referente aos abitantes de minha cidade (São Francisco Xavier) sexo, em que bairro mora, enfim tenho mais de 400 folhas preenchidas, agora preciso inserir em um banco de dados, para poder filtrar os dados, elaborei os dados no Word imprimi e fiz a pesquisa, alguem pode me ajudar, se eu enviar os dados pelo exel, vcs pode montar os dados no Acess?
    Tuesday, May 31, 2011 11:25 PM
  • Pessoal Boa Tarde,

    É a primeira vez que posto, e tambem estou precisando de esclarecimentos, estou fazendo um sistema basico e nao manjo muito, já conectei a base access, e no form tenho os txt_box's NOME, ENDERECO, TELEFONE, como eu faço pra adicionar um botao pra mandar o que eu digito nesses campos irem pra base, a base ja tem os mesmo campos.

    Sunday, October 16, 2011 5:37 PM