Foros del Web » Programando para Internet » ASPX (.net) »

Crear filas nuevas en un datatable con un gridview

Estas en el tema de Crear filas nuevas en un datatable con un gridview en el foro de ASPX (.net) en Foros del Web. Buenos dias para todos Me podrian ayudar por favor con lo siguiente lo que necestio es que cuando presio un boton se me agregue una ...
  #1 (permalink)  
Antiguo 07/06/2007, 11:13
 
Fecha de Ingreso: junio-2007
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 0
Crear filas nuevas en un datatable con un gridview

Buenos dias para todos

Me podrian ayudar por favor con lo siguiente lo que necestio es que cuando presio un boton se me agregue una nueva fila a mi datatable y se conserve la proxima vez que vuelva a presionar se agregue una nueva

Gracias
  #2 (permalink)  
Antiguo 07/06/2007, 14:55
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: Crear filas nuevas en un datatable con un gridview

Para agregar una fila a un datatable:
Código:
Dim dRow as DataRow = miDataTable.NewRow()
dRow("Columna1") = "pepe"
dRow("Columna2") = "pipi"
[...]
miDataTable.Rows.Add(dRow)
Con esto ya lo tendrías. Y esto lo que tiene que resultar es con tu propósito, cada vez que se ejecute ese código, se le agrega una fila a tu DataTable.
Espero te sirva.
Saludos.
__________________
..:: moNTeZIon ::..
  #3 (permalink)  
Antiguo 07/06/2007, 16:11
 
Fecha de Ingreso: junio-2007
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Crear filas nuevas en un datatable con un gridview

PRIMERO QUE TODO MUCHAS GRACIAS POR RESPONDER
MIRA YA INTENTE LO QUE ME DIJISTE YO YA HABIA ECHO ALGO SIMILAR PERO ME SALE EL SIGUIENTE ERROR

Column 'Columna1' does not belong to table .

SI DEPRONTO SABES QUE ES ESPERO QUE ME PUEDAS AYUDAR
  #4 (permalink)  
Antiguo 08/06/2007, 01:43
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: Crear filas nuevas en un datatable con un gridview

Te puse "Columna1" a modo de ejemplo, hombre!
Tu debes saber cómo se llaman tus columnas
Si no, también tienes la opción de referenciarlas por numero de índice, y no por nombre...
Un saludo!
__________________
..:: moNTeZIon ::..
  #5 (permalink)  
Antiguo 08/06/2007, 02:14
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Crear filas nuevas en un datatable con un gridview

hola yo tengo el mismo problema, el usuario escoge los valores en unos combos y cada vez q escoge uno se insertaría en una tabla dinámica, pero no me guarda el anterior combo escogido. ¿Cómo se puede hacer esto?
  #6 (permalink)  
Antiguo 08/06/2007, 07:43
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: Crear filas nuevas en un datatable con un gridview

Hola guitar24.
Demasiado genérica tu pregunta, en mi opinión.
Arriba expuse cómo añadir una Row a un DataTable. Y creo que eso ya lo teneis claro, porqué el code es simple.
Intenta concretar donde tienes el problema. Es al obtener el dato elegido en el combo? o cuál es el problema exactamente?
Venga, un saludo!
__________________
..:: moNTeZIon ::..
  #7 (permalink)  
Antiguo 08/06/2007, 07:57
 
Fecha de Ingreso: junio-2007
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Crear filas nuevas en un datatable con un gridview

Pero por supuesto es que mis columnas se llaman asi las puse con tu ejemplo
como te dije yo intente algo similar pero me sale el mismo error con las columnas ya sea con tu nombre con el que sea.

Un saludo,
  #8 (permalink)  
Antiguo 08/06/2007, 08:21
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: Crear filas nuevas en un datatable con un gridview

Hola YTOTAL.
El ejemplo no crea columnas, solo las referencia obviando que se llaman así.
Me pregunto si el problema será que partes de un DataTable vacío, acabado de declarar.
En tal caso, tienes que "definir" sus columnas.
esto se hace así:
Código:
Dim miDataTable As New DataTable
miDataTable.Columns.Add("Columna1")
miDataTable.Columns.Add("Columna2")
[...]
Y luego si, con el codigo de arriba se le agregan filas a este DataTable.
A ver si hay suerte!
De todas formas, siempre es bueno mostrar vuestro código, así vemos un poco dónde puede estar la cosa.
Suerte!
__________________
..:: moNTeZIon ::..
  #9 (permalink)  
Antiguo 08/06/2007, 08:43
 
Fecha de Ingreso: junio-2007
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Crear filas nuevas en un datatable con un gridview

Muchas gracias nuevamente mira ya lo declare como me dijiste y tienes toda la razon se me olvido declarar las columnas pero yo lo habia echo asi, en fin vuelvo a mi problema inicial cuando presiono un boton voy al metodo donde supuestamente deberia crar las nuevas filas el cual tengo con tu ejemplo
ahora en el grid se crea la primera fila pero cuando vuelvo a presionar no pasa nada no se crea una segunda fila en el datagridview

este es el metodo
miDataTable.Columns.Add("Columna1")
miDataTable.Columns.Add("Columna2")

Dim dRow As DataRow = miDataTable.NewRow()
dRow("Columna1") = "pepe"
dRow("Columna2") = "pP"

miDataTable.Rows.Add(dRow)
GridView2.DataSource = miDataTable
GridView2.DataBind()
  #10 (permalink)  
Antiguo 08/06/2007, 08:54
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: Crear filas nuevas en un datatable con un gridview

mmm... creas las columnas en el momento de agregar una fila?
Yo pienso que el DataTable ya deberías tenerlo creado y definido.
Y en este método solamente agregarle una fila...
Pero todo esto es para guardar en base de datos? o para que?
Cada vez que vuelves de un postback la cosa empieza de nuevo, por eso siempre tienes una sola fila.
__________________
..:: moNTeZIon ::..
  #11 (permalink)  
Antiguo 08/06/2007, 09:37
 
Fecha de Ingreso: junio-2007
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Crear filas nuevas en un datatable con un gridview

si creo las columnas en el momento de agregar la fila pero es que si no lo hago en el mismo metodo me sale el error de que no conoce ese nombre de columna cuando lo hago en un metodo diferente el que te mostre, ahora el datatable ya esta creado previamente no es problema

encuanto a lo que si es para guardarlo en la DB si es para eso lo que pasa es que tengo que almacenar los datos para despues de otros procesos guardar

Un saludo,

Última edición por YTOTAL; 08/06/2007 a las 09:43
  #12 (permalink)  
Antiguo 08/06/2007, 09:46
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Crear filas nuevas en un datatable con un gridview

hola moNTeZIon, tienes razón no me he explicado correctamente.
Tengo un formulario en el que defino unos combos para seleccionar un idioma y el nivel que se tiene; y una tabla que en principio está
vacía y no visible. Inicialmente, al usuario se le presentan los combos para elegir, elige, presiona el botón añadir y la tabla se hace visible
introduciendo como fila los valores escogidos en los combos. Mi problema es que cuando el usuario escoge el siguiente idioma, la página se
recarga,me borra la fila anterior y sólo me aparece la nueva fila.
Mi código de la tabla en el formulario (.aspx) es el siguiente:

<asp:table id="tabla_idioma" style="Z-INDEX: 111; LEFT: 40px; POSITION: absolute; TOP: 224px"
runat="server" Width="536px" Height="32px" Visible="False" BorderColor="DarkGray" BorderStyle="Solid"
BorderWidth="1px" CellPadding="5" CellSpacing="0" EnableViewState="False">
<asp:TableRow EnableViewState="False" BackColor="LightBlue">
<asp:TableCell Runat="server" ID="Tablecell1">
<asp:Label ID="idi" Runat="server">Idioma</asp:Label>
</asp:TableCell>
<asp:TableCell Runat="server" ID="Tablecell2">
<asp:Label ID="oral" Runat="server">Comprensión Oral</asp:Label>
</asp:TableCell>
<asp:TableCell>
<asp:Label ID="escrita" Runat="server">Comprensión Escrita</asp:Label>
</asp:TableCell>
<asp:TableCell>
<asp:Label ID="lectura" Runat="server">Lectura</asp:Label>
</asp:TableCell>
<asp:TableCell></asp:TableCell>
<asp:TableCell></asp:TableCell>
<asp:TableCell></asp:TableCell>
</asp:TableRow>

</asp:table>

Mi código en .aspx.vb es el siguiente:

Private Sub btn_insertar_idioma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_insertar_idioma.Click

tabla_idioma.Visible = True
btn_guardar.Visible = True

Dim nueva_fila As TableRow
Dim nueva_celda As TableCell

nueva_fila = New TableRow

nueva_celda = New TableCell
nueva_celda.Text = dl_idioma.SelectedItem.Text
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Text = dl_oral.SelectedItem.Text
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Text = dl_escrita.SelectedItem.Text
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Text = dl_lectura.SelectedItem.Text
nueva_fila.Cells.Add(nueva_celda)

modificar.Text = "Modificar "
modificar.Enabled = True
modificar.NavigateUrl = "datos_idiomas.aspx?cambiar=si"

eliminar.Text = " Eliminar"
eliminar.Enabled = True
eliminar.NavigateUrl = "modificar_datos_idioma.aspx"

nueva_celda = New TableCell
nueva_celda.Controls.Add(modificar)
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Text = "|"
nueva_fila.Cells.Add(nueva_celda)

nueva_celda = New TableCell
nueva_celda.Controls.Add(eliminar)
nueva_fila.Cells.Add(nueva_celda)

tabla_idioma.Rows.Add(nueva_fila)
End sub

A ver si me puedes echar una mano. Gracias por tu atención.
  #13 (permalink)  
Antiguo 11/06/2007, 03:07
 
Fecha de Ingreso: junio-2007
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Crear filas nuevas en un datatable con un gridview

Ahora he creado una variable de sesión que guarda la tabla. Pero ne me visualiza las filas que voy añadiendo, pq pasa esto?? Tb he probado lo del ispostback pero tampoco es la solución.
Por favor ayuda,
  #14 (permalink)  
Antiguo 22/07/2008, 20:53
 
Fecha de Ingreso: julio-2008
Mensajes: 9
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Crear filas nuevas en un datatable con un gridview

Hola!! soy nuevo en este foro...y este es mi primer post....justamente encontre este foro buscando la solucion para el mismo problema que tiene guitar24.
yo ahora no tengo el codigo, pero lo que hice fue colocar en el page load, el codigo para crear el datatable, las columnas y las filas. y en un boton lo unico que hago es agregar una fila nueva con un codigo similar a este:

Dim dRow as DataRow = miDataTable.NewRow()
dRow("Columna1") = "pepe"
dRow("Columna2") = "pipi"
[...]
miDataTable.Rows.Add(dRow)

me anda sin problemas, y me agrega la fila...el tema es cuando quiero agregar otra, que no se si me borra la anterio por el postback o sobre escribe la linea...
voy a estar atento a el tema, y si encuentro la solucion la subire lo mas rapido posible
  #15 (permalink)  
Antiguo 11/12/2008, 22:13
 
Fecha de Ingreso: diciembre-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear filas nuevas en un datatable con un gridview

yo tengo el mismo problema... como agregar varios... y despues poder meter todo a una bd
  #16 (permalink)  
Antiguo 29/12/2008, 09:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear filas nuevas en un datatable con un gridview

hola a todos, me gustaria que alguien me ayude a crear un datatbale con todo lo que pueda tener en visual studio.net 2005 porque es ahi donde tengo dudas. por favor si?
muchisimas gracias
  #17 (permalink)  
Antiguo 29/12/2008, 09:24
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear filas nuevas en un datatable con un gridview

Por favor alguien me puede ayudar, es que necesito hacerlo hoy!
  #18 (permalink)  
Antiguo 29/12/2008, 12:19
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 17 años, 4 meses
Puntos: 13
Respuesta: Crear filas nuevas en un datatable con un gridview

Lo que les pasa es que cuando hacen postback la variable se pierde.... el que la guardo en una sesion esta correcto pero en cada page_load tiene que recuperarla y volverla a guardar.... se entiende!!!!


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


tabla = Session.Item("Tabla")
'haces lo que queres y luego la volves a guardar

'este add reemplaza al existente con los nuevos cambios mas los que tenias
'esto lo debes hacer seguramente en otro evento y no en el page_load
'declara la variable tabla como global para poder modificarla desde cualquier punto si queres
Session.Add("Tabla", Dt)

End Sub
  #19 (permalink)  
Antiguo 24/02/2012, 19:11
Avatar de Fito21m  
Fecha de Ingreso: febrero-2012
Ubicación: Lima - Lince
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Crear filas nuevas en un datatable con un gridview

YTOTAL, está es la solución a tu problema...

// esta forma si es valida.. pero si no te funciona usa la que pondré después te este ejemplo
Dim dRow as DataRow = miDataTable.NewRow()
dRow("Columna1") = "pepe"
dRow("Columna2") = "pipi"
[...]
miDataTable.Rows.Add(dRow)


// esta forma tambien es valida sali de muchos aprietos...
Dim dRow as DataRow = miDataTable.NewRow()
dRow(0) = "pepe" // "Columna1"
dRow(1) = "pipi" // "Columna2"
[...]
miDataTable.Rows.Add(dRow)

Suerte.... FITO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 22:07.