El caso se da en un select de este tipo:
Código:
nCI es un objeto que define que el datetime está entrando con regionalización para argentina ("es-AR").oSelect = "ID= '" & .Item("ID") & "' " & _ "AND SERIE = '" & .Item("NRO_SERIE") & "' " & _ "AND DESDE = '" & Convert.ToDateTime(.Item("DESDE")).ToString("dd/MM/yyyy HH:mm:ss", nCI) & "' AND HASTA = '" & Convert.ToDateTime(.Item("HASTA")).ToString("dd/MM/yyyy HH:mm:ss", nCI) & "'" reg = setData.Tables(0).Select(oSelect, "ID, SERIE, DESDE")
En este contexto, el filtro quedaba o menos así:
Cita:
Esto funcionaba perfectamente, sin importar si la aplciación se ejecutaba en Estados Unidos, México, Colombia, Ecuador, Chile, Brasil o Argentina (donde están nuestros clientes), pero desde hace unas semanas ha comenzado a fallar dando un mensaje que expresa: "ID = '0025' AND SERIE = '0025' AND DESDE = '01/06/2008 22:49:33' AND HASTA = '04/06/2008 09:14:40'"
"Conversión no válida desde 'DateTime' hasta 'String'", lo que es absurdo, por cuanto ese es el modo que el manual en MSDN indica para este tipo de selecciones. Incluso dice que la comparación ">=" o "<=" no es válida entre estos dos tipos... lo que también es falso.
La pregunta, entonces:
¿Alguien tiene idea de por qué está sucediendo esto?
¿Alguna sugerencia de cómo resolverlo"
Tip final:
Las tablas que se trabajan contienen información que sólo resulta práctico manipular con ése método, por lo que usar otro implicaría una enorme pérdida de performance (además de enormes cantidades de tiempo de desarrollo adicional). Con esto quiero decir que debo resolver el problema, no rediseñar todo el algoritmo.