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 !!!

Preguntas similare

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 !!!



Respuesta Responder a este mensaje
#2 Paulino Padial
06/07/2007 - 00:27 | Informe spam
Muchas gracias, estaba tan empeñado que estaria la solucion en el
datatable.Rows
que ni me habia parado a leer las propias del datatable.

Repito, Muchas gracias !

( Y cual es la logica del otro error ? ) comparten memoria o algo los
datarow esos?
"Wbert" escribió en el mensaje
news:
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 !!!



Respuesta Responder a este mensaje
#3 Wbert
06/07/2007 - 00:56 | Informe spam
Para eso estamos,

Suerte
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida