PH_Nikit 0 Denunciar post Postado Dezembro 30, 2008 Olá Pessoal, eu não estaria postando aqui no forum se não fosse em último caso, eu já pesquisei muito na net e sem sucesso. Bom, então se vcs puderem me ajudar eu agradeço. Linguagem de Programação: C# Banco de Dados: SQL Server 2005 Plataforma: Visual Studio 2005 Tipo: Windows Application O meu problema é o seguinte: Eu tenho um 'form' com um DateTimePicker já formatado corretamente e minha tabela do banco de dados possui um campo data com o tipo 'datetime' porém quando tento gravar no BD dá um erro! eu mudei o tipo do campo data para 'varchar' no BD e gravou certinho ... só que eu queria que gravasse como datetime. ERRO - the conversionof a char data type to a datetime data type result in an out-of-range datetime value. Se alguém souber me ajudar eu agradeço!!!! VLW!!!! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Dezembro 31, 2008 Qual o valor que ele esta tentando gravar no banco? É realmente uma data? Poste o código de inserção. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
PH_Nikit 0 Denunciar post Postado Dezembro 31, 2008 Como Datetime não grava nada no banco ... dá erro antes da gravação ... agora se eu mudo para varchar o campo data ... ele grava corretamente. Eu utilizo uma classe de conexão (cDataAccess.cs) na qual eu já tenho as funções de insert, update, delete e de select a função de de insert da classe é essa: public bool executeSQL(String strSQL) { SqlCommand cmd = new SqlCommand(); cmd.CommandType = CommandType.Text; cmd.Connection = m_db; cmd.CommandText = strSQL; try { cmd.ExecuteNonQuery(); return true; } catch { return false; } } e no form eu utilizo esse insert: cDataAccess conn = new cDataAccess(); string s = "INSERT INTO TB_FUNCIONARIO (id_cargo,foto,nome,endereco,num,comp,bairro,cidade,estado,cep,data_nasc," + "estado_civil,tel_fixo,cel,tel_contato,email,identidade,orgao,cpf,escolarida de,escolaridade_completa," + "banco,ag,conta,data_admissao,remuneracao,departamento,carga_horaria,chefia_ imediata,horario_entrada,horario_saida,vale_transporte," + "vale_refeicao,outros,status)VALUES('" + cmbcargo.SelectedValue + "','" + imagemDestino + "','" + txtnome.Text + "'," + "'" + txtendereco.Text + "','" + txtnum.Text + "','" + txtcomp.Text + "','" + txtbairro.Text + "','" + txtcidade.Text + "'," + "'" + txtestado.Text + "','" + txtcep.Text + "','" +[color="#0000FF"][b] txtdata_nascimento.Text [/b][/color]+ "','" + cmbestado_civil.Text + "','" + txttel.Text + "','" + txtcel.Text + "'," + "'" + txttel_contato.Text + "','" + txtemail.Text + "','" + txtidentidade.Text + "','" + txtorgao.Text + "'," + "'" + txtcpf.Text + "','" + cmbescolaridade.Text + "','" + cmbescolaridade_completa.Text + "'," + "'" + txtbanco.Text + "','" + txtagencia.Text + "','" + txtconta.Text + "','" +[color="#0000FF"][b] txtdata_admissao.Text [/b][/color]+ "'," + "'" + txtremuneracao.Text + "','" + txtdepartamento.Text + "','" + txtcarga_horaria.Text + "','" + txtchefia_imediata.Text + "'," + "'" + txthorario_entrada.Text + "','" + txthorario_saida.Text + "','" + cmbvale_transporte.Text + "','" + cmbvale_refeicao.Text + "','" + txtoutros.Text + "',1)"; bool teste = conn.executeSQL(s); if (teste) MessageBox.Show("Funcionário Cadastrado com Sucesso!"); else MessageBox.Show("Erro no Cadastro!!"); Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Dezembro 31, 2008 Mas o que eu quero saber é qual valor esta sendo passado no insert pra dar o erro no banco. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
PH_Nikit 0 Denunciar post Postado Dezembro 31, 2008 são dois DatetimePickers e os valores que estão sendo passados são: '05/04/1987' e '30/12/2008' // esses são os valores obtidos do insert quando eu coloco um breakpoint Fica + ou - assim: "INSERT INTO TB_FUNCIONARIOS (id, nome , ..... , data_nasc,..,data_admissao...)VALUES('1', 'João' , ...... , '05/04/1987' ,.., '30/12/2008' ...)" eu andei lendo na net e achei algumas coisas sobre tableadapter porém eu não sei usar!!!! VLW!!!!! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Janeiro 2, 2009 Acho que não tem necessidade. De um replace substituindo a barra das datas por ponto. Ficará assim: '05.04.1987' Abraços... Compartilhar este post Link para o post Compartilhar em outros sites