CLR: .Net / Mono / Boo / Otros CLR > C#
Dataset
hellscream:
--- Cita de: "poduma" --- si, pero los tablestyles no son estilos que se agregan a un datagrid para ver una tabla de manera personalizada??
Yo pensaba que los tablestyles no le influian a las tablas, solo a los grids.
Que tengo que borrar el Tablestyle que tenga el grid (relacionado con esa tabla), hacer la copia de los datos de una tabla en otra y despues volver a darle estilo al Grid ¿?
Gracias. :comp:
--- Fin de la cita ---
Estoy casi seguro de que el error va al querer agregar nuevamente los *tablestyles*, tienes 2 opciones, una es arreglar tu rutina para que no intente agregar nuevamente los *tablestyles*; la otra es hacer NombreDataGrid.TableStyles.Clear(); al inicio de esa rutina y olvidarte del problema.
poduma:
Gracias hellscream !!. Era por eso :angry: . Al final, necesitaba no solo hacer una copia de las filas de Filtrado en FiltradoCopia si esta ultima ya existe, sino crearla si no existe, en el momento que necesito hacer una copia de Filtrado. (ya que FiltradoCopia solamente tiene sentido crearla en el momento que necesite hacer la copia de seguridad de Filtrado, NO antes). (Si usaba .Copy() al ya existir la tabla FiltradoCopia en el Dataset, al intentar agregarla de nuevo me daba una excepcion, incluso si la borraba del DataSet antes de usar .Copy()).
Dejo el codigo del metodo por si a alguien le hace falta, espero que pueda usarlo quien esté interesado. Se que puede haber mejores soluciones pero funciona bien y no hay que hacer accesos a la BD, que era lo que yo quería evitar. (Si alguien sabe una solucion mejor al codigo que pongo ahora que lo suba asi igual le sirve a alguien).
El metodo ResetearFiltrado() por el que pregunte inicialmente, se llamará una vez que deseamos Restaurar Filtrado con las filas que tenia al hacer la copia. En ese metodo, unicamente habría que:
1) Eliminar todas las filas de Filtrado
DataSet.Tables["Filtrado"].Rows.Clear();
2) Importar las filas de FiltradoCopia a Filtrado
int numFilas = DataSet.Tables["FiltradoCopia"].Rows.Count;
for (int i = 0; i < numFilas; i++){
DataSet.Tables["Filtrado"]. ImportRow(DataSet.Tables["FiltradoCopia"]. Rows);
}//for
:P (aqui pongo cuando se hace la copia de seguridad de Filtrado)
private void CrearCopiaFiltrado(){
// SI FiltradoCopia YA EXISTE
if (DataSet.Tables.Contains("FiltradoCopia")){
// 1º) Borramos las filas que tenga
DataSet.Tables["FiltradoCopia"].Rows.Clear();
//2º) 'Importamos' las filas de Filtrado a FiltradoCopia
int numFilas = DataSet.Tables["Filtrado"].Rows.Count;
for (int i = 0; i < numFilas; i++){
DataSet.Tables["FiltradoCopia"]. ImportRow(DataSet.Tables["Filtrado"]. Rows);
}//for
}//if
else { // SI LA TABLA NO EXISTE
// 1º) Borramos los Tablestyles que tenga dataGridCli (cuyo DataMember es Filtrado)
dataGridCli.TableStyles.Clear();
// 2º) Hacemos una copia de Filtrado y copiamos su estruct y datos
DataTable copia = DataSet.Tables["Filtrado"];
copia = DataSet.Tables["Filtrado"].Copy();
//3º) le cambiamos el nombre antes de guardarla
copia.TableName = "FiltradoCopia";
//4º) la guardamos en el DataSet
DataSet.Tables.Add(copia);
// 5º) Agregamos de nuevo los TableStyles a DataGridCli
FormatoDataGridCli();
}//else
}//Crear
PD: Hellscream, gracias de nuevo :lol:
Navegación
[*] Página Anterior
Ir a la versión completa