Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

fibalous

Selecionar ID de uma gridview

Recommended Posts

fibalous

Boas,

Tenho uma gridview onde quero ir buscar o ID_Doc, esta informação está presente na gridview.

O problema é que ele não está a ir buscar o ID_Doc se alguém souber o que estou a fazer de errado agradeço que me diga.

APSX:

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource2" 
                Width="515px" AutoGenerateColumns="False" DataKeyNames="ID_Doc" OnRowDataBound="GridView1_RowDataBound" >
                <Columns>
                    <asp:TemplateField HeaderText="ID" SortExpression="ID_Doc" Visible="True">
                            <EditItemTemplate>
                            <%# Eval("ID_Doc") %>
                            <asp:TextBox ID="TextBox_ID_Doc" runat="server" Text='<%# Bind("ID_Doc") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label_ID_Doc" runat="server" Text='<%# Bind("ID_Doc") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Nome" SortExpression="nome">
                        <EditItemTemplate>
                            <%# Eval("nome") %>
                            <asp:TextBox ID="TextBox_nome" runat="server" Text='<%# Bind("nome") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label_nome" runat="server" Text='<%# Bind("nome") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="data" HeaderText="Data de inserção" 
                        SortExpression="data" />
            <asp:TemplateField HeaderText="Abrir Relatório" SortExpression="abrir">
                <ItemTemplate>
                <asp:LinkButton ID="Open" runat="server" Text="Abrir" OnClick="Open" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Apagar Relatório" SortExpression="apagar">
                <ItemTemplate>
                <asp:LinkButton ID="Delete" runat="server" Text="Apagar" OnClick="Delete" />
                </ItemTemplate>
            </asp:TemplateField>
                </Columns>
            </asp:GridView>

C#:

        SqlCommand caminho = new SqlCommand("SELECT path FROM tbl_documentos WHERE nome ='" + (GridView1.Rows[rowIndex].FindControl("Label_ID_Doc") as Label).Text + "'", conn);
        SqlDataReader reader = caminho.ExecuteReader();
        reader.Read();
        string filepath = reader.GetString(0);
        reader.Close();

Está a dar o seguinte erro:

Invalid attempt to read when no data is present.

Line 123:        string  = reader.(0);

Suponho que não esteja a ir buscar o ID só não sei porquê.

PS: Caso esta informação seja útil o ID_Doc é integer na BD

Share this post


Link to post
Share on other sites
fibalous

Já está feito...estava a seleccionar a coluna nome e a comparar com o ID_Doc 😳

        SqlCommand caminho = new SqlCommand("SELECT path FROM tbl_documentos WHERE ID_Doc ='" + (GridView1.Rows[rowIndex].FindControl("Label_ID_Doc") as Label).Text + "'", conn);

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.