none
Ayuda con una consulta, por favor RRS feed

  • Pregunta

  • Es que tengo una tabla realizada con gridview, pero quiero mostrar un contador de comentarios los cuales no ha visto el usuario.

    Pero me ha costado demasiado hacer la consulta ya que no tengo el id del aviso individualmente y no se como hacer un conteo por cada columna, en este caso son avisos.

    Aqui una parte de mi codigo:

    Si se fijan en el boton CM debe de ir el contador, este es el codigo del grid

    <%@ Page Title="" Language="C#" MasterPageFile="~/PaginaBase.master" AutoEventWireup="true" CodeFile="MenuAvisos.aspx.cs" Inherits="MenuAvisos" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <center>
            <h1>Avisos Metalcast</h1>
            <div style="height:450px; overflow-y:scroll;">
                <asp:GridView ID="GridAvisos" runat="server" AutoGenerateColumns="False" Width="100%" HorizontalAlign="Center" DataKeyNames="id_aviso" cssClass="table striped border bordered">
                    <Columns>
                        <asp:BoundField DataField="aviso1" HeaderText="Aviso" />
                        <asp:BoundField DataField="fec" HeaderText="Fecha" />
                        <asp:BoundField DataField="prioridad" HeaderText="P" />
                        <asp:BoundField DataField="nombreCompleto" HeaderText="Persona que Genero" />
                        <asp:TemplateField HeaderText="CM">
                            <ItemTemplate>
                                <asp:Button ID="ComentariosEventos" runat="server" Text="CM" OnCommand="ComentariosEventos_Command" CommandArgument='<%#Eval("id_aviso")%>'></asp:Button>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </div>
            <br /><br /><a onclick="location.href='NuevoAviso.aspx';">Crear un Nuevo Aviso</a>
        </center>
    </asp:Content>
    
    

    Estas son mis tablas de la base de datos:

    Lo que trato de hacer es que muestre el conteo de los comentarios que hay por cada aviso del cliente...


    Jordy Santamaria

    martes, 19 de enero de 2016 16:40

Todas las respuestas

  • hola

    pero cual es la query linq que estas generando ?

    entiendo que deberias relacionar las tablas usando el join de linq


    para poder relacionar y contar los items de la tabla relacionada

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 20 de enero de 2016 9:51
  • Perdon, este es mi metodo para llenar el gridview y en el se encuentra la consulta, lo que quiero hacer es que en el contador que se ve en la imagen de arriba, tienes que contar los mensajes por cada aviso, pero para hacerlo por cada aviso necesito el id de cada uno, para hacer un conteo individual, o no se si exista otra forma de hacer el conteo.

    E intentado con el inner join, pero hace un conteo general de todos los avisos y eso es lo que no quiero.

    Saludos.

    private void llenarAvisos() 
        {
            LnqDatosAdministracionDataContext datos = new LnqDatosAdministracionDataContext();
    
            var l = from table in datos.Aviso
                    orderby table.fec descending
                    select new
                    {
                        table.id_aviso,
                        table.aviso1,
                        table.fec,
                        prioridad = table.prioridad.Equals("Normal") ? "N" : (table.prioridad.Equals("Importante") ? "I" : (table.prioridad.Equals("Urgente") ? "U" : null)),
                        nombreCompleto = m.Abreviar((from tab in datos.usuario where tab.id == table.idadmin select tab).First().nombreCompleto),
                        //contador =
                    };
            GridAvisos.DataSource = l.ToList();
            GridAvisos.DataBind();
        }
    



    Jordy Santamaria

    miércoles, 20 de enero de 2016 14:19
  • El número de elementos los puedes obtener 

     
    GridAvisos.DataSource = l.ToList();
    int count = l.ToList().Count;
    


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 20 de enero de 2016 15:13