Hi I have a gridview that shows a list of questions. Only one field is editable and if the information has been edited an email is sent to a specific "destiny". All works fine but when I try to get the Question ID in my SendEmail function (using Findcontrol) I get "Object reference not set to an instance of an object." How Can I get the Question ID?
My sqldatasource:
   <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:conn %>" SelectCommand="SELECT Questions.QuestionID, Questions.Name, Questions.Question, Questions.Destiny, Questions.DateQuestion, Questions.Answer" UpdateCommand="UPDATE Questions SET Destiny = @Destiny WHERE (QuestionID = @QuestionID)">
    <SelectParameters>
   </SelectParameters>
     <UpdateParameters>
        <asp:Parameter Name="Destiny" />
        <asp:Parameter Name="QuestionID" />
    </UpdateParameters>
</asp:SqlDataSource>
My gridview:
     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="QuestionID" OnRowUpdated="GridView1_RowUpdated"
    DataSourceID="SqlDataSource1">
    <Columns>
        <asp:TemplateField HeaderText="ID" InsertVisible="False" SortExpression="QuestionID">
          <ItemTemplate>
                <asp:Label ID="LabelQuestionID" runat="server" Text='<%# Bind("QuestionID") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>    
   <asp:TemplateField HeaderText="Question" InsertVisible="False" SortExpression="Question">
          <ItemTemplate>
                <asp:Label ID="LabelQuestion" runat="server" Text='<%# Bind("Question") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField> 
     <asp:TemplateField HeaderText="Date" SortExpression="DateQuestion">
                         <ItemTemplate>
                <asp:Label ID="LabelDateQuestion" runat="server" Text='<%# Bind("DateQuestion", "{0:g}") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Destiny" SortExpression="Destiny">
                           <ItemTemplate>
                <asp:Label ID="LabelDestiny" runat="server" Text='<%# Bind("Destiny") %>'></asp:Label>
            </ItemTemplate>
            <EditItemTemplate>
            <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Destiny") %>'></asp:TextBox>
            </EditItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField ShowHeader="False">
            <EditItemTemplate>
                <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="True" CommandName="Update"
                    Text="Update"></asp:LinkButton>
                <asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Cancel"
                    Text="Cancel"></asp:LinkButton>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
      </Columns>
</asp:GridView>
My code behind:
    Protected Sub GridView1_RowUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdatedEventArgs) 
    If Trim(e.OldValues("Destiny").ToString <> Trim(e.NewValues("Destiny").ToString)) Then
    QuestionID  = GridView1.FindControl("LabelQuestionID").ToString
    SendEmailtoAdviser(Trim(e.NewValues("Destiny")), QuestionID)
    End If
    End Sub