none
Error al convertir una cadena de caracteres en fecha y/u hora.

    Question

  • A qué se debe este error?

    Error al convertir una cadena de caracteres en fecha y/u hora.

    Antes las fechas me iban bien al agregar un nuevo producto, ahora no se que ha pasado

    Gracias de antemano!

    Monday, August 13, 2012 8:43 PM

Answers

  • Bueno, gracias a todos por responder, después de hacer un seguimiento arduo, me di cuenta que los parámetros no coincidian con el orden de la tabla, así que cambié el parámetro '@idmix' para la última columna, ejecute y esta vez si me corrió perfectamente, gracias a todos por ayudarme, me acabo de quitar un gran peso de encima, aunque esté con un dolor de cabeza horrible, pero vale la pena

    Gracias!

    Tuesday, August 14, 2012 2:27 PM

All replies

  • Nadie? ._. 
    Monday, August 13, 2012 9:39 PM
  • No podemos ayudarle si no nos muestra cómo está convirtiendo los textos a fecha y si no nos muestra un ejemplo de texto que no convierte.  Si nos proporciona estos datos entonces podremos ayudarle.

    Jose R. MCP
    Code Samples

    Monday, August 13, 2012 11:34 PM
    Moderator
  • Error al convertir una cadena de caracteres en fecha y/u hora.

    seguramente la fecha no sea valida, podrias usar el

    DateTime fecha;
    
    if(DateTime.TryParse(txtFecha.Text, out fecha)){
    
        //aqui convirtio correctamente y puede suar la variable fecha
    
    }

    Nota: cuando preguntas en el foro de asp.net no olvides nunca de mencionar en que lengueja programas


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Tuesday, August 14, 2012 12:39 AM
  • Pero tengo otro webform que tiene el mismo formato para las fechas y funciona perfecto, igual en la base de datos estoy tratando de ingresar registros con fechas en producto y me sale el mismo error:

    exec usp_insertaProducto 14,1,'jeje','holaaaa',1,0,0,0,1,25,1,1,1,1,1,1,1,1,3,'14/08/2012',2,4,'sap0001','hello'

    Mens 241, Nivel 16, Estado 1, Procedimiento usp_insertaProducto, Línea 10
    Error al convertir una cadena de caracteres en fecha y/u hora.

    Gracias

    Tuesday, August 14, 2012 1:05 PM
  • Hola Buenos días,

    Vuelvo a repetir la pregunta porque quizá ya algunos se olvidaron porque eso fue ayer y nadie pudo contestarme y me tuve que ir. Si les incomoda les pido disculpas, ahora lo detallaré con más cuidado.

    Cuando ingreso una fecha a mi webform me sale este error:
    Error al convertir una cadena de caracteres en fecha y/u hora.

    Tengo mi stored procedure así:

    ALTER procedure [dbo].[usp_insertaProducto](@id int, @idmix int,@cod char(50),@desc varchar(200),
    									@idestado int, @dietetico int, @funcional int,
    									@granel int, @unidad int, @peso int, @idcat int,
    									@idlinea int, @idmarcar int, @idsabor int,
    									@idrend int,@idaporte int, @idemb int, 
    									@idpresent int,@idgrupo int,@fecha datetime,
    									@idunidad int,@volumen decimal,@codigosap varchar(50),@descingles varchar(200))
    as
    select @id = ISNULL(max(ID_PRODUCTO)+	1,1) from PRODUCTO ;
    insert into PRODUCTO values (@id,@idmix,@cod,@desc,@idestado,
    @dietetico,@funcional,@granel,@unidad,@peso,@idcat,
    @idlinea,@idmarcar,@idsabor,@idrend,@idaporte,@idemb,
    @idpresent,@idgrupo,'Admin',@fecha,null,null,@idunidad,@volumen,@codigosap ,@descingles )

    Pero cuando hago un seguimiento al código, la fecha lo representa bien, como esta imagen:

    Lo gracioso es que tengo otro stored procedure que tiene el mismo formato cuando ingreso un producto, y si me funciona perfecto

    Cuando ejecuta la sentencia me da el error, estoy programando en vb.net con la base de datos Sql Server 2008
    Espero que puedan ayudarme

    Gracias de antemano

    • Merged by Leandro TuttiniMVP Tuesday, August 14, 2012 1:29 PM
    • Proposed as answer by zirba Friday, July 19, 2013 7:27 PM
    • Unproposed as answer by zirba Friday, July 19, 2013 7:27 PM
    Tuesday, August 14, 2012 1:20 PM
  • si el campo o parametro (del sp) es datetime no puede pasar un valor con comillas

    tienes que usar el CAST o CONVERT para que sea un datetime


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Tuesday, August 14, 2012 1:21 PM
  • Hola Leandro, te invito a que sigas este Link:

    http://social.msdn.microsoft.com/Forums/es/netfxwebes/thread/517160df-a844-47b2-8862-f2677f3671a1

    es la misma pregunta que he hecho pero está más detallada para que podamos seguir el error y llegar a una solución

    Saludos

    Tuesday, August 14, 2012 1:23 PM
  • pero pt.fecha, de que tipo es ? es un DateTime

    porque sino deberias usar

    .Add("@fecha", SqlDbType.DateTime).Value = Convert.ToDateTime(pt.fecha)

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Tuesday, August 14, 2012 1:32 PM
  • Hola Leandro, gracias por juntar las preguntas, actualmente lo estoy manejando como Date, esto afecta en algo?

    Private m_fecha As Date
    
     Public Property fecha As Date
            Get
                Return m_fecha
            End Get
            Set(ByVal value As Date)
                m_fecha = value
            End Set
        End Property

    Saludos


    Tuesday, August 14, 2012 1:37 PM
  • prueba que sea DateTime la propiedad

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Tuesday, August 14, 2012 1:43 PM
  • Ya cambié la propiedad a Datetime y me sigue saliendo el mismo error, así como igual lo convertí a datetime cuando era un Date

    Yo creo que es error de la bd, mira tengo este stored procedure:

    ALTER procedure [dbo].[usp_insertaMixtura]
    @id int,
    @cod varchar(9),
    @desc varchar(200),
    @fecha datetime,
    @idcat int,
    @idsabor int,
    @idli int,
    @pesomix decimal = 0,
    @pesomezcla decimal = 0,
    @idestado int
    as
    select @id = ISNULL(max(ID_MIXTURA) + 1,1) from MIXTURA;
    insert into MIXTURA values(@id,@cod,@desc,@idcat,@idsabor,@idli ,@pesomix,@pesomezcla,@idestado,'Admin',@fecha ,null,null)

    y cuando ingreso manualmente un registro incluso poniendo las fechas en comillas '14/08/2012' me sale perfectamente.

    Saludos

    Tuesday, August 14, 2012 1:49 PM
  • Hola,

    estas usando el formato de fecha de estados unidos o sea mes/dia/año y tal vez la "cultura" de tu codigo es de formato latino o sea dia/mes/año. Te propongo hacer una prueba, coloca un brakepoint en la linea: pt.fecha y en el inmediate windows reasignale el valor con el formato latino #14/8/2012# si no salta la excepcion entonces es eso. Si es asi fijate en esto para setear la internacionalizacion y cultura:

    http://jhuvier.wordpress.com/2010/10/08/formatoculturafechas-net/

    Saludos



    Jose Mendez.
    Blog
    Ejemplos de codigos/Code Samples
    If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".
    Si un Post responde a tu pregunta, por favor "Marcala como Respondida" y "Vota como útil".

    Tuesday, August 14, 2012 1:50 PM
  • Solo mira la imagen de arriba que describe el error, es como lo estás describiendo

    Saludos

    Tuesday, August 14, 2012 1:54 PM
  • NOTA APARTE:  Si su programa es multiusuario, entonces su obtención del ID está en peligro de duplicar ID's.  Si usted no utiliza un campo Identity() y en vez de eso trata de calcular valores de ID manualmente obteniendo el máximo y sumándole 1, entonces debe usted tomar las previsiones del caso para evitar múltiple concurrencia.  Tiene usted que iniciar una transacción, luego bloquear la tabla MIXTURA cuando lee los ID's y finalmente liberar la tabla cuando haya terminado de hacer la inserción.

    Jose R. MCP
    Code Samples

    Tuesday, August 14, 2012 1:57 PM
    Moderator
  • Esto no tiene que ver nada con el error, lo del id es código autogenerado, que no tiene que ver nada con el formato de las fechas que tengo problema, como repito, antes podía agregar normalmente productos, ahora cuando volví a intentar ya no funciona, quizá sea algo del sql server

    Saludos

    Tuesday, August 14, 2012 2:04 PM
  • Yo sé que no tiene que ver con el problema.  Por eso dice "NOTA APARTE".  Es aparte a su problema, pero quise hacérselo notar.

    Jose R. MCP
    Code Samples

    Tuesday, August 14, 2012 2:24 PM
    Moderator
  • Bueno, gracias a todos por responder, después de hacer un seguimiento arduo, me di cuenta que los parámetros no coincidian con el orden de la tabla, así que cambié el parámetro '@idmix' para la última columna, ejecute y esta vez si me corrió perfectamente, gracias a todos por ayudarme, me acabo de quitar un gran peso de encima, aunque esté con un dolor de cabeza horrible, pero vale la pena

    Gracias!

    Tuesday, August 14, 2012 2:27 PM