Tengo un DataTable con dos campos "BirthDay" y "HireDay" del tipo DateTime, y quiero filtrar las filas que correspondan a dos fechas determinadas.
Siguiendo las instrucciones de este enlace armé mi query de la siguiente manera:
DateTime hday = new DateTime(2016, 8, 10);
String query =
String.Concat("BirthDay=#", Convert.ToString(bday.Date), "# or HireDay=#", Convert.ToString(bday.Date), "#");
DataRow[] encontrados = miDatatable.Select(query);
Al ejecutar mi aplicación me lanza esta excepción:
Excepción no controlada del tipo 'System.FormatException' en mscorlib.dll
Información adicional: La cadena no se reconoce como DateTime válido. Hay una palabra desconocida al inicio del índice 24.
En cambio, si cambio manualmente el valor de la variable
query
a:"BirthDay=#09/08/2016# or HireDay=#10/08/2016#"
no me tira excepción, pero ya no me devuelve ninguna fila, a pesar de
que sí tengo fechas en los campos "BirthDay" y "HireDay" iguales al 9
de agosto del 2016.La solución me la dio Leandro Tuttini, el formato de fecha debe ser en-US, independientemente de la configuración regional del sistema operativo. La variable query debe armarse de la siguiente forma:
DateTime bday = new DateTime(2016, 8, 9);
DateTime hday = new DateTime(2016, 8, 10);
string query = string.Format("BirthDay=#{0:MM/dd/yyyy}# or HireDay=#{1:MM/dd/yyyy}#", bday, hday);
DataRow[] encontrados = miDatatable.Select(query);
No hay comentarios:
Publicar un comentario