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
Imports System.Data.OleDb Imports System.Data Imports System.Data.SQLClient Partial Class GVBase Inherits System.Web.UI.Page Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim values As ArrayList = New ArrayList() Dim conn As SqlConnection = New SqlConnection("server=myhost;database=DBPRUEBA;User ID=myuser;Password=mypass;Trusted_Connection=no") Dim sql2 As String = "INSERT INTO Calificacion (rpe, nombre, cl_tipco, dscarea, Ingreso, Antiguedad, Calificacion) VALUES (@rpe, @nombre, @cl_tipco, @dscarea, @Ingreso, @Antiguedad, @Calificacion)" conn.Open() For Each fila As GridViewRow In GridView1.Rows Using command As New SqlCommand(sql2, conn) command.Parameters.AddWithValue("@rpe", fila.Cells(0).Text) command.Parameters.AddWithValue("@nombre", fila.Cells(1).Text) command.Parameters.AddWithValue("@cl_tipco", fila.Cells(2).Text) command.Parameters.AddWithValue("@dscarea", fila.Cells(3).Text) command.Parameters.AddWithValue("@Ingreso", fila.Cells(4).Text) command.Parameters.AddWithValue("@Antiguedad", fila.Cells(5).Text) command.Parameters.AddWithValue("@Calificacion", fila.Cells(6).Text) command.ExecuteNonQuery() End Using Next Catch ex As Exception MsgBox(ex.Message.ToString) MsgBox("no se pudo cargar a la base de datos") End Try End Sub End Class
Este es el asp del Gridview:
Código ASP:
Ver original
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="GVBase.aspx.vb" Inherits="GVBase" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Página sin título</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Migrar" /> <asp:Button ID="Button2" runat="server" Text="VaciarBD" /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="rpe" HeaderText="rpe" SortExpression="rpe" /> <asp:BoundField DataField="nombre" HeaderText="nombre" SortExpression="nombre" /> <asp:BoundField DataField="cl_tipco" HeaderText="cl_tipco" SortExpression="cl_tipco" /> <asp:BoundField DataField="dscarea" HeaderText="dscarea" SortExpression="dscarea" /> <asp:BoundField DataField="Ingreso" HeaderText="Ingreso" ReadOnly="True" SortExpression="Ingreso" /> <asp:BoundField DataField="Antiguedad" HeaderText="Antiguedad" ReadOnly="True" SortExpression="Antiguedad" /> <asp:TemplateField ConvertEmptyStringToNull="False" HeaderText="Calificacion" SortExpression="Calificacion"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("Calificacion") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString5 %>" 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"> </asp:SqlDataSource> </div> </form> </body> </html>