Obtener Filas Seleccionadas en un DatagridView

05/07/2007 - 22:31 por Paulino Padial | Informe spam
Saludos tengo el siguiente problema:

Hago lo siguiente:

Obtengo los datos con un data adapter de una consulta en un datatable, y
pongo ese datatable como fuente de datos de un datagridview:

SqlConnection nwindConn = new SqlConnection("Data Source.0.0.200;Persist
Security Info=True;Initial Catalog=AdventureWorks; User ID=user;
Password=pass");


StringBuilder sb = new StringBuilder();

sb.Append( "SELECT TABLES.TABLE_NAME AS 'TABLA'" );

sb.Append( "FROM INFORMATION_SCHEMA.TABLES TABLES ");

sb.Append("WHERE TABLE_TYPE = 'BASE TABLE'");

SqlDataAdapter schemaDA = new SqlDataAdapter( sb.ToString(),

nwindConn);


schemaDA.Fill(schemaTable);

dgvObjetos.DataSource = schemaTable.DefaultView;





Vale, ahora en un boton ponto el siguiente código:

system.data.datatable dt = new toda la pesca...

foreach (DataGridViewRow row in this.dgvObjetos.SelectedRows)

dt.Rows.Add( this.schemaTable.Rows[row.Index] );

YO LO QUE QUIERO ES LO SIGUIENTE:

Las filas que haya selecionado el usuario quiero guardarlas, porque esos
datos los usaré mas adelante.

Pero me tira un error diciendo que la fila ya pertenece a otra tabla, es
decir, como si no pudiera "copiar" esa fila del datatable a otro

sabeis como puedo hacer esto que quiero? me da igual donde guardarlo, si un
datarowcollection, un datatable, o lo que sea, pero guardarlo sin tener que
ir campo a campo creando un datarow y escribir asi para una operacion de
asignacion 20 lineas de codigo.



Gracias !!!
 

Leer las respuestas

#1 Wbert
05/07/2007 - 22:54 | Informe spam
Hola

en vez de table.Rows.Add(), usa table.ImportRow()

Saludos

Wbert

"Paulino Padial" wrote:

Saludos tengo el siguiente problema:

Hago lo siguiente:

Obtengo los datos con un data adapter de una consulta en un datatable, y
pongo ese datatable como fuente de datos de un datagridview:

SqlConnection nwindConn = new SqlConnection("Data Source.0.0.200;Persist
Security Info=True;Initial Catalog=AdventureWorks; User ID=user;
Password=pass");


StringBuilder sb = new StringBuilder();

sb.Append( "SELECT TABLES.TABLE_NAME AS 'TABLA'" );

sb.Append( "FROM INFORMATION_SCHEMA.TABLES TABLES ");

sb.Append("WHERE TABLE_TYPE = 'BASE TABLE'");

SqlDataAdapter schemaDA = new SqlDataAdapter( sb.ToString(),

nwindConn);


schemaDA.Fill(schemaTable);

dgvObjetos.DataSource = schemaTable.DefaultView;





Vale, ahora en un boton ponto el siguiente código:

system.data.datatable dt = new toda la pesca...

foreach (DataGridViewRow row in this.dgvObjetos.SelectedRows)

dt.Rows.Add( this.schemaTable.Rows[row.Index] );

YO LO QUE QUIERO ES LO SIGUIENTE:

Las filas que haya selecionado el usuario quiero guardarlas, porque esos
datos los usaré mas adelante.

Pero me tira un error diciendo que la fila ya pertenece a otra tabla, es
decir, como si no pudiera "copiar" esa fila del datatable a otro

sabeis como puedo hacer esto que quiero? me da igual donde guardarlo, si un
datarowcollection, un datatable, o lo que sea, pero guardarlo sin tener que
ir campo a campo creando un datarow y escribir asi para una operacion de
asignacion 20 lineas de codigo.



Gracias !!!



Preguntas similares