eu_Nana 0 Denunciar post Postado Agosto 7, 2012 Realizei a conversão para datetime Mas estou com um outro problema.... Tenho essa procedure: USE [banco_func] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[s BANCO_FUNC verifica Funcionario_Hora] @Funcionario as varchar(50), @Horario as datetime AS SET NOCOUNT ON SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT Banco_Func_vch_Funcionario, Banco_Func_dat_Horario FROM dbo.Banco_Func WHERE Banco_Func_vch_Funcionario = @Funcionario AND Banco_Func_dat_Horario = @Horario No caso ele deveria comparar o nome do funcionario e horario se a pessoa tentar gravar o mesmo nome e o mesmo horario ao mesmo tempo deveria retornar um erro dizendo que já consta no banco... Meu código esta assim: a clsCadFuncionarioDAO: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; usind BancodeDados; public class clsCadFuncionarioDAO { #region " Constantes de acesso ao banco de dados " private const string spCADASTRA_FUNCIONARIO= "[A FUNCIONARIO cadastra Funcionarios]"; private const string spPARAMETROS_ENTRADA_CADASTRA_FUNCIONARIO = "@Funcionario_lng_Codigo:@Funcionario_vch_Nome:@Funcionario_vch_Sobrenome:@Funcionario_vch_Local:@Funcionario_vch_Cidade:@Funcionario_vch_Area:@Funcionario_dat_Data_Nascimento:@Funcionario_dat_Horario:"; private const string spPARAMETROS_SAIDA_CADASTRA_FUNCIONARIO = "@Funcionario_lng_Codigo:"; #endregion #region " Variaveis de acesso ao banco de dados " private DBFunctions m_oDB; private DataSet m_oDS; private string m_sStoredProc; private string m_sNomeParIn; private string m_sParIn; private string m_sNomeParOut; private string m_sParOut; private string m_sSQL; #endregion public bool CADASTRA_FUNCIONARIO(String Nome, String Sobrenome, String Local, String Cidade, String Area, String Data, String Horario) { try { m_sStoredProc = spCADASTRA_FUNCIONARIO; m_sNomeParIn = spPARAMETROS_ENTRADA_CADASTRA_FUNCIONARIO; m_sParIn = m_oDB.PreparaParametro(m_sNomeParIn); m_sNomeParOut = spPARAMETROS_SAIDA_CADASTRA_FUNCIONARIO; m_sParOut = "NULL"; m_sParIn = m_sParIn.Replace("@Funcionario_lng_Codigo:", ""); m_sParIn = m_sParIn.Replace("@Funcionario_vch_Nome:", Nome); m_sParIn = m_sParIn.Replace("@Funcionario_vch_Sobrenome:", Sobrenome); m_sParIn = m_sParIn.Replace("@Funcionario_vch_Local:", Local); m_sParIn = m_sParIn.Replace("@Funcionario_vch_Cidade:", Cidade); m_sParIn = m_sParIn.Replace("@Funcionario_vch_Area:", Area); m_sParIn = m_sParIn.Replace("@Funcionario_dat_Data:", Data); m_sParIn = m_sParIn.Replace("@Funcionario_dat_Horario:", Horario); return m_oDB.ExecutarAcao(ref m_sStoredProc, ref m_sNomeParIn, ref m_sParIn, ref m_sNomeParOut, ref m_sParOut); int p_sCadastro_lng_Codigo = int.Parse(m_oDB.ConteudoParametroSaida(ref m_sParOut)); } catch (Exception ex) { throw new ApplicationException(ex.Message, ex.InnerException); } } } using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.SqlClient; using BancodeDados; using System.Configuration; public class clsCadFuncionario { private clsCadFuncionarioDAO c_CadFuncionarioDAO; private DBFunctions m_oDataBase; private String Funcioanrio; private String Horario; public bool CadastrarFuncionario(String Nome, String Sobrenome, String Local, String Cidade, String Area, String Data, String Horario) { // Busca no banco de dados o Funcionario/Horario se houve retorno de algum valor da busca no banco de dados DataSet m_oDataSet = m_oCadFuncionarioDAO.VER_FUNCIONARIO(p_sCelebrante, p_sHorario); try { Funcionario = m_oDataSet.Tables[0].Rows[0]["Banco_Func_vch_Funcionario"].ToString(); Horario = m_oDataSet.Tables[0].Rows[0]["Banco_Func_dat_Horario"].ToString(); return false; } catch (IndexOutOfRangeException) { c_CadFuncionarioDAO.CADASTRA_FUNCIONARIO(Nome, Sobrenome, Local, Cidade, Area, Data, Horario); return true; } } } No caso ele não retorna nenhum erro, mas realiza o cadastro normalmente.....isso não deveria acontecer qnd entrar c mesmo nome e mesma hora. No caso ao cadastrar a hora...esta cadastrando com essa estrutura: aaaa/mm/dd HH:mm:ss ....isso pode estar influenciando na verificação? Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Agosto 8, 2012 Eu aconselharia você a fazer um verificador no próprio sistema, por meio de variaveis chave que diriam se ele já realizou ou não o cadastro. Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Agosto 8, 2012 Como assim? Não entendi... Uma outra coisa ele esta gravando a data e a hora que são campos separados da seguinte forma ..... data: 2012-08-08 00:00:00.000 horario: 2012-08-08 19:16:50.000 O que pode ser....como faço para gravar só a data e zerar a hora no campo data e a mesma coisa para o campo hora, e como faço para gravar somente o formato 19:16:50 Dessa forma: data: 2012-08-08 00:00:00 horario: 0000-00-00 19:16:50 Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Agosto 10, 2012 Que banco esta usando? Nesse caso os campos do banco deveriam um ser Date e o outro só Time. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites