Usuário com melhor resposta
Duvida OleDbType - Insirir datas no Banco de dados!!!!!!

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?
- Movido William John Adam Trindade quinta-feira, 1 de novembro de 2012 16:06 Forum Apropriado (De:C#)
Respostas
-
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
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.
-
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
-
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