none
Como debugar para saber qual procedure ou tabela estão sendo executados com Asp.Net RRS feed

  • Pergunta

  • Estou há 10 dias nesse novo trampo e estou tendo algumas dificuldades o que é normal, dependendo da dificuldade. Tenho uma table dentro de um repeater que é alimentada ´por uma procedure. Como eu faço com o debug para encontrar a procedure que está sendo ececutada através dessa linha?

       
    <asp:HiddenField ID="hdfCdTipoUsuario" runat="server" Value='<%# Eval("CdTipoUsuario")%>' />



    Esse é todo o repeater e a table:

        <asp:Repeater ID="rptGerenciaProcessos" runat="server" 
        onitemcommand="rptGerenciaProcessos_ItemCommand" 
        onitemdatabound="rptGerenciaProcessos_ItemDataBound">
        <HeaderTemplate>
        <table id="gerenciaProcessos">
        <thead>
        <tr>
                                    <th>Consultar processo</th>
        <th>Priorizar</th>
        <th>Priorizado</th>
        <th>Nº do processo</th>
        <th>Data de abertura</th>
        <th>Início da análise</th>
        <th>Término na análise</th>
        <th>Situação</th>
        <th>Grupo</th>
        <th>Cota</th>
        <th>Etapa</th>
        <th>Analista</th>
        </tr>
        </thead>
        </HeaderTemplate>
        <ItemTemplate>
        <tr>
                                    <td>
                                        <asp:Button ID="btnConsultarProcessos" OnClick="btnConsultarProcessos_Click" runat="server" Text="Consultar processo" CommandName="ConsultaProcessoGestor" CssClass="acessos" />
                                    </td>
        <td>
        <asp:HiddenField ID="hdfCdProcesso" runat="server" Value='<%# Eval("CdProcesso")%>'/>
        <asp:HiddenField ID="hdfCdAnalise" runat="server" Value='<%# Eval("CdAnalise")%>' />
        <asp:HiddenField ID="hdfCdUsuario" runat="server" Value='<%# Eval("CdUsuarioAn")%>' />
        <asp:HiddenField ID="hdfCdWorkFlowItem" runat="server" Value='<%# Eval("CdWorkFlowItem")%>' />
        <asp:HiddenField ID="hdfCdTipoUsuario" runat="server" Value='<%# Eval("CdTipoUsuario")%>' />
        <asp:LinkButton ID="lkbPriorizar" runat="server" CssClass="clickPriorizar">Priorizar</asp:LinkButton>
        <!--<a href="#"class="clickPriorizar">Priorizar</a>-->
        </td>
        <td><input type="checkbox" id="ckbPriorizado" <%# Eval("IcPriorizado")%> disabled></td>
        <td><asp:Label Text='<%# Eval("CdProcesso")%>' runat="server" /></td>
        <td><asp:Label Text='<%# Eval("DtCriacao")%>' runat="server" /></td>
        <td><asp:Label Text='<%# Eval("DtInicio")%>' runat="server" /></td>
        <td><asp:Label Text='<%# Eval("DtFim")%>' runat="server" /></td>
        <td><asp:Label Text='<%# Eval("NmWorkFlowItem")%>' runat="server" /></td>
        <td><asp:Label Text='<%# Eval("CdGrupo")%>' runat="server" /></td>
        <td><asp:Label Text='<%# Eval("CdCota")%>' runat="server" /></td>
        <td><asp:Label Text='<%# Eval("NmTipoStatus")%>' runat="server" /></td>
        <td><asp:Label Text='<%# Eval("NomeUsuario")%>' runat="server" /></td>
        </tr>
        </ItemTemplate>
        <FooterTemplate>
        </table>
        </FooterTemplate>
        </asp:Repeater>

    A dificuldade está em saber como eu debugo a linha `...Eval("Meu_Campo")...`

    sexta-feira, 21 de novembro de 2014 17:47

Todas as Respostas

  • Boa tarde Pnet,

    Seguinte, geralmente os valores são passados para o repeater no seguinte comando: 

    rptGerenciaProcessos.DataSource = "lista_de_dados_recebida_do_banco";

    e o comando que faz com que os dados apareceção no repeater é o seguinte:

    rptGerenciaProcessos.DataBind();

    Como fazer para achar os dados:

    caminho 1: Procure o seguinte trecho  de código "rptGerenciaProcessos.DataSource = " no code-behind apertando Ctrl + F.

    Quando localizar o trecho vc saberá qual lista está preenchendo o Repeater, com isso você precisa somente procurar no seu projeto de onde está vindo essa lista, ou seja, onde ela está sendo criada e preenchida.

    caminho 2: abra o Management Studio na aba "Tools" clique na primeira opção "SQL Server Profile" irá abrir uma outra tela pedindo para você se conectar com o banco de dados, nesse momento conecte ao banco que sua aplicação está consumindo, após isso irá aparecer uma tela pra você clique aba "Events Selection" após isso marque as duas opções "Show all events" e "Show all column" e clique em Column Filters, irá aparecer uma tela chamada "Edit Filter", clique em "DatabaseName" ao lado direito clike em "like" no campo que irá aparecer digite o nome do banco de dados que está usando e aperte em "OK", na janela de trás aperte "Run"  e irá aparecer uma lista... agora é simples, execute sua página novamente na aplicação para que o Repeater carregue novamente (sem nenhum break point).

    Após executar a página e esperar ela carregar, a lista do profile estará apresentará todas as procedures executadas pela página para carregar, basta verificar qual procedure corresponde ao que você está procurando.

    Vídeo Como utilizar o SQL Server Profile: https://www.youtube.com/watch?v=mJ8Dyv4Uk6E

    Tutorial Step by Step: http://www.codeproject.com/Articles/21371/SQL-Server-Profiler-Step-by-Step

    Geralmente é isso que eu faço.

    Espero ter ajudado!

    • Sugerido como Resposta Murilo Neandro segunda-feira, 15 de dezembro de 2014 18:23
    sexta-feira, 21 de novembro de 2014 18:44