Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2005, 10:41
Avatar de Scour
Scour
 
Fecha de Ingreso: octubre-2003
Ubicación: Murcia (España)
Mensajes: 94
Antigüedad: 21 años
Puntos: 0
Modificar tipo de dato en DataSet antes de cargarlo.

Muy buenas, estoy haciendo un programa Windows Form en c# y por temas de portabilidad, todas las transferencias de datos entre SqlServer y la aplicación van por SOAP.

El caso es que un apartado del programa es sobre control de tiempo trabajado, de modo que los usuarios finales tendrán una lista de tareas en un DataGrid, y al seleccionar con un doble click una tarea, un reloj empezará a sumar tiempo, que finalmente se guardará en la Base de Datos. Ese campo en BD es de tipo DateTime, y yo lo que necesito es que en el DataGrid solo se reflejen HH:MM:SS, no la fecha. Del SOAP me traigo el DataSet, y ya en la aplicación, selecciono únicamente la hora con este código:

Código:
private void grilla()
{
	llamada = new Service1();
	DateTime[] hora = new DateTime[llamada.contar(Decimal.Parse(ident.Text))];
	DataSet ds = new DataSet();
	ds = llamada.rellena_grilla(Decimal.Parse(ident.Text));
	DG.DataSource = ds;
	int i;
	for (i = 0; i <= llamada.contar(Decimal.Parse(ident.Text)); i++)
	{
		hora[i] = DateTime.Parse(ds.Tables["Tareas"].Rows[i][2].ToString());
		DG[i,2] = hora[i].ToLongTimeString();
	}
}
Pero este código no funciona por que el DataGrid (DG) hereda los tipos de datos del DataSet, y al hacer esta operación:

DG[i,2] = hora[i].ToLongTimeString();

estoy asignando un tipo string a un tipo DateTime.

Lo que necesito es que al traerme el DataSet, pueda acceder al esquema antes de cargar el DataGrid y donde dice algo así como:

<xs:element name="tiempo" type="DateTime" />

(No recuerdo si la línea era exactamente así, pero no tengo acceso a la BD ahora mismo con lo que no puedo ejecutar el SOAP para ver el esquema del DataSet)

Pues donde dice el tipo de dato DateTime, cambiarlo por string.

Pues todo este rollo para eso, ¿Como puedo cambiar en el esquema de un DataSet el tipo de dato antes de hacer nada con él?

Muchas gracias de ante mano.

Un saludo.