none
problemas al obtener datos de mi GridView RRS feed

  • Pregunta

  •  

    hola a todos... la verdad necesito la ayuda de ustedes..

    mi problema nace con el no poder obtener datos de mi GridView ... al seleccionar una fila... el codigo es el siguiente:

     

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    Protected Sub GridView2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView2.SelectedIndexChanged

               Dim _aTema As String

               Dim aValor As Integer

               _aTema = GridView2.SelectedRow.Cells(2).Text

     

               '-----------------------------------------------------

               '-------Selecciono el IDTema que pertenece a un curso

               '-----------------------------------------------------

               Dim cnn As New SqlConnection(conexion.Instancia.Cadenaconexion)

               cnn.Open()

               Dim sqlCommand As SqlCommand = New SqlCommand("SP_ParaAlumnos", cnn)

               sqlCommand.CommandType = CommandType.StoredProcedure

               sqlCommand.Parameters.Add("@TipoConsulta", SqlDbType.TinyInt).Value = 8

               sqlCommand.Parameters.Add("@DescripcionTema", SqlDbType.VarChar, 255).Value = _aTema

               Dim result As SqlDataReader = sqlCommand.ExecuteReader

               While result.Read

                          aValor = result(0)

               End While

               cnn.Close()

               cnn.Dispose()

               Session("aTema") = aValor

               Label1.Text = aValor

    End Sub

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

     

    ACA LES ANEXO MI STORED PROCEDURE:
    ------------------------------------------------------------------

    ALTER PROCEDURE SP_ParaAlumnos

    @TipoConsulta  tinyint,

    @DescripcionTema varchar(255)=null,

     

    AS

    IF @TipoConsulta = 8

    --Seleccionar IDTema por Descripcion del Curso

    SELECT Tema.TemaID FROM Tema WHERE Tema.Descripcion=@DescripcionTema GROUP BY Tema.TemaID

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------

    El punto es que cuando selecciono mi fila de mi grilla por consiguiente se dispara este evento, pero no me selecciona la celda de la columna 2 (posición 3)...

     

    Acá adjunto la imagen de mi GridView:

     

     

     http://www.uploadfilesystem.com//viewimage.php?file=/imagenes/09/01/26/5aX36586.jpg

     

     

    Quisiera saber que solución puedo adoptar ahora.... les agradecería mucho su ayuda

     

    he pasado mucho tiempo y no puedo solucionarlo.....

     

    Gracias de antemanos

     

                                                                                                        Atte. Nino Jesus Rodriguez Quispe

    martes, 27 de enero de 2009 6:12

Todas las respuestas

  •  

    Hola Nino,

     

    a ver si te podemos hechar una mano entre todos. A priori el código que muestras es correcto.

    Cosas que se me ocurren:

    - Comrpueba que tienes la propiedad EnableViewState a true

    - Pon un breakepoint justo en la linea _aTema = GridView2.SelectedRow.Cells(2).Text  y comprueba que valores trae SelectedRow (así verás si trae algun valor o es que SelectedRow viene con las celdas vacías).

     

    Por el momento no se me ocurre nada más...

     

    Seguimos en contacto!

    martes, 27 de enero de 2009 9:08
  • Ha si es correcto tu codigo pero recuarda que por cada item del Gridview se guarda en un TextBox o en Label.
    entonces yo creo que la manera de buscarlo seria con Fincontrol.

    Bueno al menos que no utilices un itemtemplate.

      TextBox txtUrl = (TextBox)(gvNews.FindControl("txtURL"));

    Puedes colocar el codigo HTML para ver como esta tu GridView.
    martes, 27 de enero de 2009 15:48
  •  

    buen dia doctores...

    revisando mi data GridView y la propiedad [ EnableViewState a true] esta en [True]...

    revise con un breack point. y de resultado tengo esto:

     

    y tuve como resultado lo siguiente ...

     

    http://www.imaxenes.com/imagen/gridview11vj40hp.png.html

     

    me parece que no le otorga ningun valor.. a mi variable.. [_aTema]

     

    ---------------------------

    pero aqui les estoy enviando el codigo de aplicacion

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    <%@ Page Language="VB" MasterPageFile="MasterPage.master" AutoEventWireup="false" CodeFile="TemasXCurso.aspx.vb" Inherits="Alumnos_TemasXCurso" title="P gina sin t¡tulo" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

    <style type="text/css">

    .style4

    {

    width: 24px;

    }

    </style>

    </asp:Content>

    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <asp:ScriptManager ID="ScriptManager1" runat="server">

    </asp:ScriptManager>

    <br />

    <table class="style1">

    <tr>

    <td>

    &nbsp;</td>

    <td class="style4">

    &nbsp;</td>

    <td>

    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

    </td>

    </tr>

    <tr>

    <td colspan="3" style="text-align: center">

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">

    <ContentTemplate>

    <asp:GridView ID="GridView2" runat="server"

    AllowPaging="True" AutoGenerateColumns="False" DataSourceID="ObjectDataSource2" CellPadding="4"

    ForeColor="#333333" GridLines="None" Width="426px" CellSpacing="1"

    PageSize="5">

    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />

    <Columns>

    <asp:CommandField ShowSelectButton="True" />

    <asp:BoundField DataField="Curso" HeaderText="Curso" SortExpression="Curso" />

    <asp:BoundField DataField="Descripcion" HeaderText="Descripcion"

    SortExpression="Descripcion" />

    <asp:BoundField DataField="URL" HeaderText="URL" SortExpression="URL" />

    </Columns>

    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />

    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />

    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />

    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />

    <EditRowStyle BackColor="#999999" />

    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />

    </asp:GridView>

    </ContentTemplate>

    </asp:UpdatePanel>

    </td>

    </tr>

    <tr>

    <td>

    <asp:ObjectDataSource ID="ObjectDataSource2" runat="server"

    SelectMethod="ListarXCurso" TypeName="CapaNegocio.TemaCn">

    <SelectParameters>

    <asp:SessionParameter DefaultValue="1" Name="CursoID"

    SessionField="IDCursoAlumno" Type="Int32" />

    <asp:SessionParameter DefaultValue="123" Name="AlumnoID"

    SessionField="IDAlumno" Type="Int32" />

    </SelectParameters>

    </asp:ObjectDataSource>

    </td>

    <td class="style4">

    <asp:UpdatePanel ID="UpdatePanel2" runat="server">

    <ContentTemplate>

    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

    </ContentTemplate>

    </asp:UpdatePanel>

    </td>

    <td>

    &nbsp;</td>

    </tr>

    </table>

    </asp:Content>

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    la idea de mi stored procedure

    ------------------------------------------------------------------

    ALTER PROCEDURE SP_ParaAlumnos

    @TipoConsulta  tinyint,

    @DescripcionTema varchar(255)=null,

     

    AS

    IF @TipoConsulta = 8

    --Seleccionar IDTema por Descripcion del Curso

    SELECT Tema.TemaID FROM Tema WHERE Tema.Descripcion=@DescripcionTema GROUP BY Tema.TemaID

     

    es que solo me devuelva un solo valor.... y no una tabla de valores por eso es que hice la sentencia de esta manera:

    While result.Read

                        aValor = result(0)

    End While

    y mi resultado de mi procedure si le asigno el valor de 'INTERSECCIÓN DE CONJUNTO.doc' tengo com oresultado lo siguiente:

    http://www.imaxenes.com/imagen/resultado_de_mi_consulta1af96c4.jpg.html

    osea que tengo q devolver un solo valor con el stored procedure...

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    practicamente todo lo qestoy usando.. en este file.... y el resultado es el siguiente

    http://www.uploadfilesystem.com//viewimage.php?file=/imagenes/09/01/26/5aX36586.jpg

    si se dan cuenta en esta imagen... al seleccionar mi GridView me arroja en mi [label] un [0].. y no el resultado de mi stored procedure...

     

     

    agradesco por tomarse el tiempo para ayudarme... con este preoblema.. y se que a muchos le debe estar pasando lo mismo....

     

    Gracias..

     

    Atte. Nino Jesus Rodriguez Quispe

    martes, 27 de enero de 2009 21:59
  • Pues Revise el codigo y en realidad no le vi algo malo mas sin embago me parece extraño ya probaste obtener el valor de otro columna y otra celda?

    yo probe con esto y de echo agrege y Me funciona perfecto y hasta obtenego el Valor de unos TextBox que tengo dentro de mi gridview y funciona muy bien.

    en realidad es lo mismo.

     protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow row = GridView1.SelectedRow;
            string codigo = row.Cells[1].Text;
           
        }
    martes, 27 de enero de 2009 22:30
  •  

    gracias por la respuestas... miren.. acabo de darme cuenta donde estoy fallando... y es en aqui

     

    Protected Sub GridView2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView2.SelectedIndexChanged

               Dim _aTema As String

               Dim aValor As Integer

               _aTema = GridView2.SelectedRow.Cells(2).Text

     

               '-----------------------------------------------------

               '-------Selecciono el IDTema que pertenece a un curso

               '-----------------------------------------------------

               Dim cnn As New SqlConnection(conexion.Instancia.Cadenaconexion)

               cnn.Open()

               Dim sqlCommand As SqlCommand = New SqlCommand("SP_ParaAlumnos", cnn)

               sqlCommand.CommandType = CommandType.StoredProcedure

               sqlCommand.Parameters.Add("@TipoConsulta", SqlDbType.TinyInt).Value = 8

               sqlCommand.Parameters.Add("@DescripcionTema", SqlDbType.VarChar, 255).Value = _aTema

               Dim result As SqlDataReader = sqlCommand.ExecuteReader

               While result.Read

                          aValor = result(0)

               End While

               cnn.Close()

               cnn.Dispose()

               Session("aTema") = aValor

               Label1.Text = _aTema

    End Sub

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    aca al hacer q mi variable [_aTema] el cual me guarda el valor de la seleccion de la fila de la GridView

    y en verdad si me obtiene ese valor.. pero el problema esta en este codigo  sombreado... la verdad no c que

    estare haciendo mal...

     

    mi idea es obtener un solo valor (que en este caso seria el [Tema.TemaID] pero haciendo que [Tema.Descripcion] = _aTema)

    es donde alli tengo el problema Tongue Tied que no puedo recuperar ese valir del [Tema.TemaID]

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    ACA LES ANEXO MI STORED PROCEDURE:
    ------------------------------------------------------------------

    ALTER PROCEDURE SP_ParaAlumnos

    @TipoConsulta  tinyint,

    @DescripcionTema varchar(255)=null,

     

    AS

    IF @TipoConsulta = 8

    --Seleccionar IDTema por Descripcion del Curso

    SELECT Tema.TemaID FROM Tema WHERE Tema.Descripcion=@DescripcionTema GROUP BY Tema.TemaID

    ----------------------------------------------------------------------------------------------------------

    martes, 27 de enero de 2009 23:07
  •  

    gracias por la respuestas... miren.. acabo de darme cuenta donde estoy fallando... y es en aqui

     

    Protected Sub GridView2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView2.SelectedIndexChanged

               Dim _aTema As String

               Dim aValor As Integer

               _aTema = GridView2.SelectedRow.Cells(2).Text

     

               '-----------------------------------------------------

               '-------Selecciono el IDTema que pertenece a un curso

               '-----------------------------------------------------

               Dim cnn As New SqlConnection(conexion.Instancia.Cadenaconexion)

               cnn.Open()

               Dim sqlCommand As SqlCommand = New SqlCommand("SP_ParaAlumnos", cnn)

               sqlCommand.CommandType = CommandType.StoredProcedure

               sqlCommand.Parameters.Add("@TipoConsulta", SqlDbType.TinyInt).Value = 8

               sqlCommand.Parameters.Add("@DescripcionTema", SqlDbType.VarChar, 255).Value = _aTema

               Dim result As SqlDataReader = sqlCommand.ExecuteReader

               While result.Read

                          aValor = result(0)

               End While

               cnn.Close()

               cnn.Dispose()

               Session("aTema") = aValor

               Label1.Text = _aTema

    End Sub

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    aca al hacer q mi variable [_aTema] el cual me guarda el valor de la seleccion de la fila de la GridView

    y en verdad si me obtiene ese valor.. pero el problema esta en este codigo  sombreado... la verdad no c que

    estare haciendo mal...

     

    mi idea es obtener un solo valor (que en este caso seria el [Tema.TemaID] pero haciendo que [Tema.Descripcion] = _aTema)

    es donde alli tengo el problema Tongue Tied que no puedo recuperar ese valir del [Tema.TemaID]

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    ACA LES ANEXO MI STORED PROCEDURE:
    ------------------------------------------------------------------

    ALTER PROCEDURE SP_ParaAlumnos

    @TipoConsulta  tinyint,

    @DescripcionTema varchar(255)=null,

     

    AS

    IF @TipoConsulta = 8

    --Seleccionar IDTema por Descripcion del Curso

    SELECT Tema.TemaID FROM Tema WHERE Tema.Descripcion=@DescripcionTema GROUP BY Tema.TemaID

    ----------------------------------------------------------------------------------------------------------

    martes, 27 de enero de 2009 23:08