none
Duvida OleDbType - Insirir datas no Banco de dados!!!!!! RRS feed

  • Pergunta

  • Ola pessoal,

    To criando uma aplicação aqui, onde estou criando a conexão com o banco dados utilizando Oledb. Estou criando o comando de insert, porém não sei qual comando usar para inserir no banco, as datas de nascimento e data de admissão.

    Sei que para inserir algo do tipo numerico ficaria assim:

    insert.Parameters.Add(":ID", OleDbType.Numeric, 4, "id");

    Do tipo texto ficaria assim:

    insert.Parameters.Add(":NOME", OleDbType.VarChar, 50, "nome");

    A dúvida é, como inserir datas no banco????
    Pelo que eu segui nos modelos acima, ficaria do jeito que está abaixo, porém o VS2012 mostra erro:    

     insert.Parameters.Add(":DATA DE NASCIMENTO", OleDbType.DBDate, "data_nasc");

    Alguém pode me dizer eu estou errando?

    quinta-feira, 1 de novembro de 2012 15:48

Respostas

Todas as Respostas

  • tenta evitar usar  OleDbType.DBDate. o visual studio e muito intiligente ele sabe o que voce quer fazer. Se voce quer saber que tipo de "informcao" deve ser gravada num determinado campo, entao faz tratamento de erro, seria a melhor forma de programar.

    que tipo de erro e gerado?


    A flower cannot blossom without sunshine, and man cannot live without love.

    sexta-feira, 2 de novembro de 2012 00:17
  • usei isso e deu certo:

     insert.Parameters.Add(":DATA DE NASCIMENTO", OleDbType.Date,25, "data_nasc");

    valew.

    • Marcado como Resposta Angelo C. Silva quarta-feira, 14 de novembro de 2012 12:26
    quarta-feira, 14 de novembro de 2012 12:26
  • Exemplo para inserir nota fiscal em um BD
    //Classe que retorna a string de conexão com o BD (no caso, access 2007)
    public class Dados
    {
            //Criado para retornar um strng de conexão - igual ao app.config
            public static string StringDeConexao
            {
                get
                {
                    return @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DMG\BANCODADOS.accdb;Persist Security Info=False;
                }
            }
    }
    //estabeleço um string de conexão na classe de acesso à dados (DAL)
    string stringConnection = ConfigurationManager.ConnectionStrings["BANCODADOS"].ConnectionString;
    //string Insert(Salvar)
            string sqlInsert = @"Insert into NotasFiscais 
                            (Especie, NaturezaOperacao, Data, Serie, NumeroNF, Quantidade, DiscriminacaoGado, 
                            CodParticipante, RazaoSocialParticipante, InscricaoEstadualParticipante,
                            MunicipioParticipante, UfParticipante, CodProdutor, Periodo)
                            values 
                            (@Especie, @NaturezaOperacao, @Data, @Serie, @NumeroNF, @Quantidade, @DiscriminacaoGado, 
                            @CodParticipante, @RazaoSocialParticipante, @InscricaoEstadualParticipante, 
                            @MunicipioParticipante, @UfParticipante, @CodProdutor, @Periodo)";
    //Método Inserir
    public void Inserir(NotasFiscais obj)
            {
                try
                {
                    cnn = new OleDbConnection(stringConnection);
                    cmd = new OleDbCommand(sqlInsert, cnn);
                    cmd.Parameters.AddWithValue("@Especie", obj.Especie);
                    cmd.Parameters.AddWithValue("@NaturezaOperacao", obj.NaturezaOperacao);                
                    cmd.Parameters.AddWithValue("@Data", obj.DataNF);
                    cmd.Parameters.AddWithValue("@Serie", obj.Serie);
                    cmd.Parameters.AddWithValue("@NumeroNF", obj.NumNF);
                    cmd.Parameters.AddWithValue("@Quantidade", obj.QtdeGado);
                    cmd.Parameters.AddWithValue("@DiscriminacaoGado", obj.DiscriminacaoGado);
                    cmd.Parameters.AddWithValue("@CodParticipante", obj.CodParticipante);
                    cmd.Parameters.AddWithValue("@RazaoSocialParticipante", obj.RazaoSocialParticipante);
                    cmd.Parameters.AddWithValue("@InscricaoEstadualParticipante", obj.InscricaoEstadualParticipante);
                    cmd.Parameters.AddWithValue("@MunicipioParticipante", obj.MunicipioParticipante);
                    cmd.Parameters.AddWithValue("@UfParticipante", obj.UfParticipante);
                    cmd.Parameters.AddWithValue("@CodProdutor", obj.CodProdutor);
                    cmd.Parameters.AddWithValue("@Periodo", obj.Periodo);
                    cnn.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (OleDbException ex1)
                {
                    throw new Exception("Erro do Servidor Access: " + ex1); // como aqui é um dll, nao pode usar um mbox
                }
                catch (Exception ex2)
                {
                    throw new Exception("Erro: " + ex2);
                }
                finally
                {
                    cnn.Close();
                }

    Veja bem, no código acima (um pouco exagerado), crio um classe para retornar a string de conexao com o BD;

    Crio uma variavel tipo string para receber os dados de conexao com o banco

     no método Inserir, estabeleço os parametros conforme os dados do comando sql e os campos da tabela no banco de dados

    Eu criei uma classe modelo para a nota fiscal, com todas as informações a serem registradas;

    o obj do tipo NotasFiscais, vai receber os dados de por meio de strings, assim você pode utilizar do método ToString("dd/MM/yyyy").

    Qualquer dúvida, me contate, ai explico melhor

    quinta-feira, 22 de novembro de 2012 17:09