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

Columna editable GridView a otra base de datos!!!...

Estas en el tema de Columna editable GridView a otra base de datos!!!... en el foro de ASPX (.net) en Foros del Web. Bueno, pues creo que estoy en un predicamento, verán tengo un gridview que me muestra el resultado de una consulta a una base de datos, ...
  #1 (permalink)  
Antiguo 02/03/2012, 10:19
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Sonrisa Columna editable GridView a otra base de datos!!!...

Bueno, pues creo que estoy en un predicamento, verán tengo un gridview que me muestra el resultado de una consulta a una base de datos, un botón que me agrega los elementos del gridview a otra base de datos.

Solo hay un detalle, al final del gridview tengo una columna que se llama "Calificacion", se supone que tengo que hacer que esa columna sea editable, pero el problema es que si coloco una columna del tipo "CommandField" con la opción de editar, actualizar y cancelar, la edición me la hace sobre la base de datos en la cual extraigo la información y no sobre la que tengo que vaciar la información.

Leí que haciendo la columna del Tipo TemplateField se podría, pero aún no logro hacerlo, quisiera y me pudieran ayudar y agradezco de antemano su ayuda n_n...

Les dejo el código de la alta de registros a mi base de datos xD... pero me falta poderle meter datos a mi ultima columna, es decir, lo de la columna editable que les comento, espero no haberlos revuelto con tanta palabra...

Código vb:
Ver original
  1. Imports System.Data.OleDb
  2. Imports System.Data
  3. Imports System.Data.SQLClient
  4. Partial Class GVBase
  5.     Inherits System.Web.UI.Page
  6.  
  7.     Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
  8.         Try
  9.             Dim values As ArrayList = New ArrayList()
  10.             Dim conn As SqlConnection = New SqlConnection("server=myhost;database=DBPRUEBA;User ID=myuser;Password=mypass;Trusted_Connection=no")
  11.             Dim sql2 As String = "INSERT INTO Calificacion (rpe, nombre, cl_tipco, dscarea, Ingreso, Antiguedad, Calificacion) VALUES (@rpe, @nombre, @cl_tipco, @dscarea, @Ingreso, @Antiguedad, @Calificacion)"
  12.             conn.Open()
  13.             For Each fila As GridViewRow In GridView1.Rows
  14.                 Using command As New SqlCommand(sql2, conn)
  15.                     command.Parameters.AddWithValue("@rpe", fila.Cells(0).Text)
  16.                     command.Parameters.AddWithValue("@nombre", fila.Cells(1).Text)
  17.                     command.Parameters.AddWithValue("@cl_tipco", fila.Cells(2).Text)
  18.                     command.Parameters.AddWithValue("@dscarea", fila.Cells(3).Text)
  19.                     command.Parameters.AddWithValue("@Ingreso", fila.Cells(4).Text)
  20.                     command.Parameters.AddWithValue("@Antiguedad", fila.Cells(5).Text)
  21.                     command.Parameters.AddWithValue("@Calificacion", fila.Cells(6).Text)
  22.                     command.ExecuteNonQuery()
  23.                 End Using
  24.             Next
  25.         Catch ex As Exception
  26.             MsgBox(ex.Message.ToString)
  27.             MsgBox("no se pudo cargar a la base de datos")
  28.         End Try
  29.     End Sub
  30. End Class

Este es el asp del Gridview:

Código ASP:
Ver original
  1. <%@ Page Language="VB" AutoEventWireup="false" CodeFile="GVBase.aspx.vb" Inherits="GVBase" %>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml" >
  6. <head runat="server">
  7.     <title>Página sin título</title>
  8. </head>
  9. <body>
  10.     <form id="form1" runat="server">
  11.     <div>
  12.         &nbsp;
  13.         <asp:Button ID="Button1" runat="server" Text="Migrar" />
  14.         <asp:Button ID="Button2" runat="server" Text="VaciarBD" />
  15.         <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
  16.             <Columns>
  17.                 <asp:BoundField DataField="rpe" HeaderText="rpe" SortExpression="rpe" />
  18.                 <asp:BoundField DataField="nombre" HeaderText="nombre" SortExpression="nombre" />
  19.                 <asp:BoundField DataField="cl_tipco" HeaderText="cl_tipco" SortExpression="cl_tipco" />
  20.                 <asp:BoundField DataField="dscarea" HeaderText="dscarea" SortExpression="dscarea" />
  21.                 <asp:BoundField DataField="Ingreso" HeaderText="Ingreso" ReadOnly="True" SortExpression="Ingreso" />
  22.                 <asp:BoundField DataField="Antiguedad" HeaderText="Antiguedad" ReadOnly="True" SortExpression="Antiguedad" />
  23.                 <asp:TemplateField ConvertEmptyStringToNull="False" HeaderText="Calificacion" SortExpression="Calificacion">
  24.                     <EditItemTemplate>
  25.                         &nbsp;<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  26.                     </EditItemTemplate>
  27.                     <ItemTemplate>
  28.                         <asp:Label ID="Label1" runat="server" Text='<%# Bind("Calificacion") %>'></asp:Label>
  29.                     </ItemTemplate>
  30.                 </asp:TemplateField>
  31.             </Columns>
  32.         </asp:GridView>
  33.         &nbsp;
  34.         <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString5 %>"
  35.             ProviderName="<%$ ConnectionStrings:ConnectionString5.ProviderName %>" SelectCommand="SELECT [extractor].[dbo].[b_traba1].rpe, [extractor].[dbo].[b_traba1].nombre, [extractor].[dbo].[b_traba1].cl_tipco, [extractor].[dbo].[c_a_resp].dscarea, convert(varchar,[extractor].[dbo].[b_traba1].fe_ingre,103) AS Ingreso, convert(varchar,[extractor].[dbo].[b_traba1].fe_antre,103) AS Antiguedad, SPACE(30) AS Calificacion FROM [extractor].[dbo].[b_traba1], [extractor].[dbo].[c_a_resp] WHERE [extractor].[dbo].[b_traba1].cl_sitla IS NULL AND [extractor].[dbo].[b_traba1].area=[extractor].[dbo].[c_a_resp].area AND [extractor].[dbo].[b_traba1].cl_zona=[extractor].[dbo].[c_a_resp].cl_zona GROUP BY [extractor].[dbo].[b_traba1].rpe, [extractor].[dbo].[b_traba1].nombre, [extractor].[dbo].[b_traba1].cl_tipco, [extractor].[dbo].[c_a_resp].dscarea, [extractor].[dbo].[b_traba1].fe_ingre, [extractor].[dbo].[b_traba1].fe_antre">
  36.         </asp:SqlDataSource>
  37.    
  38.     </div>
  39.     </form>
  40. </body>
  41. </html>
  #2 (permalink)  
Antiguo 02/03/2012, 10:48
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Columna editable GridView a otra base de datos!!!...

Bueno, pues ya gracias a Dios pude agregarle una columna de tipo TextBox a mi campo "Calificacion"... Ahora el detalle es como decirle a mi evento del botón que me envía la información a la base de datos que me envíe los datos de mis textbox que tengo en mi columna "Calificacion" por que de hecho según yo se los mando en estas líneas:

Código vb:
Ver original
  1. For Each fila As GridViewRow In GridView1.Rows
  2.                 Using command As New SqlCommand(sql2, conn)
  3.                     command.Parameters.AddWithValue("@rpe", fila.Cells(0).Text)
  4.                     command.Parameters.AddWithValue("@nombre", fila.Cells(1).Text)
  5.                     command.Parameters.AddWithValue("@cl_tipco", fila.Cells(2).Text)
  6.                     command.Parameters.AddWithValue("@dscarea", fila.Cells(3).Text)
  7.                     command.Parameters.AddWithValue("@Ingreso", fila.Cells(4).Text)
  8.                     command.Parameters.AddWithValue("@Antiguedad", fila.Cells(5).Text)
  9.                     command.Parameters.AddWithValue("@Calificacion", fila.Cells(6).Text)
  10.                     command.ExecuteNonQuery()
  11.                 End Using
  12.             Next

Pero supongo que hay que mandarle una instrucción diferente por tener los textbox ahí no??... Si me pudieran ayudar estaría muy agradecido, saludos!!!...
  #3 (permalink)  
Antiguo 02/03/2012, 11:39
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Columna editable GridView a otra base de datos!!!...

Sigo investigando y me encontré con una línea de como pasar el textbox a la base de datos:

Código vb:
Ver original
  1. command.Parameters.AddWithValue("@Calificacion", TextBox1.Text)

El problema es que me marca error al hacerle referencia a mi TextBox1, me dice que no lo tengo declarado, será por que lo tengo dentro de mi TemplateField??...

No logra reconocerlo por eso o que será??... Aquíe es donde lo tengo declarado:

Código ASP:
Ver original
  1. <asp:TemplateField HeaderText="Calificacion" SortExpression="Calificacion">
  2.                     <ItemTemplate>
  3.                         &nbsp;
  4.                         <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  5.                     </ItemTemplate>
  6.                 </asp:TemplateField>

Espero y me puedan ayudar, gracias.... Saludos!!!...
  #4 (permalink)  
Antiguo 02/03/2012, 13:42
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Columna editable GridView a otra base de datos!!!...

Lo sigo intentandooooooooooooooooooooooooooo como locoooooooooooooooooooooo!!! Pero nada más no me reconoce el campo que meto a mi textbox en el Gridview, solo me pasa los datos que están dentro del mismo como labels, se tendrá que hacer de otra forma??...
  #5 (permalink)  
Antiguo 12/03/2012, 13:45
Avatar de mackbeth  
Fecha de Ingreso: noviembre-2005
Mensajes: 370
Antigüedad: 18 años, 4 meses
Puntos: 10
Respuesta: Columna editable GridView a otra base de datos!!!...

Nunca lo encontrarás ya que está instanciado sólo cuando tu gridview tiene esa fila en modo de edición, lo que debes hacer es cambiar el template de editview a itemview, ahi pones el textbox y podrás verlo sin problemas, ya que por default las filas del gridview están en estado Item
__________________
«~MaGax3iNeMD~»

Etiquetas: editable, gridview, template, aspx, sql-server
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




La zona horaria es GMT -6. Ahora son las 16:19.