Solved

Error with formView linked to ObjectDataSOurce that returns no data

Posted on 2009-05-12
3
1,336 Views
Last Modified: 2013-12-17
Greetings all

I have a FormView, linked to an ObjectDataSource that gets it's data from a method in the business layer, which calls a stored procedure. This works fine. I then changed the stored proc, so that NO data is returned, for further testing.

The app falls over, complaining of an out of bounds index (see Error message and Page Source attached).

Any thoughts?


In advance, thanks!!!

    allanmark
EROR:
 

 Index was outside the bounds of the array.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 

Exception Details: System.IndexOutOfRangeException: Index was outside the bounds of the array.
 

Source Error:
 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
 

Stack Trace:
 

[IndexOutOfRangeException: Index was outside the bounds of the array.]

   System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) +196
 

[Exception:  is not a valid value for Int32.]

   System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) +610

   System.ComponentModel.TypeConverter.ConvertFromString(ITypeDescriptorContext context, CultureInfo culture, String text) +42

   System.ComponentModel.TypeConverter.ConvertFromInvariantString(String text) +62

   System.Web.UI.WebControls.ObjectDataSourceView.ConvertType(Object value, Type type, String paramName) +152

   System.Web.UI.WebControls.ObjectDataSourceView.BuildObjectValue(Object value, Type destinationType, String paramName) +262

   System.Web.UI.WebControls.ObjectDataSourceView.GetResolvedMethodData(Type type, String methodName, IDictionary allParameters, DataSourceOperation operation) +2033

   System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +3163

   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +94

   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +205

   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +125

   System.Web.UI.WebControls.FormView.DataBind() +28

   System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +104

   System.Web.UI.WebControls.FormView.EnsureDataBound() +209

   System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +127

   System.Web.UI.Control.EnsureChildControls() +140

   System.Web.UI.Control.PreRenderRecursiveInternal() +124

   System.Web.UI.Control.PreRenderRecursiveInternal() +292

   System.Web.UI.Control.PreRenderRecursiveInternal() +292

   System.Web.UI.Control.PreRenderRecursiveInternal() +292

   System.Web.UI.Control.PreRenderRecursiveInternal() +292

   System.Web.UI.Control.PreRenderRecursiveInternal() +292

   System.Web.UI.Control.PreRenderRecursiveInternal() +292

   System.Web.UI.Control.PreRenderRecursiveInternal() +292

   System.Web.UI.Control.PreRenderRecursiveInternal() +292

   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4774
 
 
 

SOURCE:
 

<%@ Page Language="C#" MasterPageFile="~/MimeMaster01.master" AutoEventWireup="true" CodeFile="People.aspx.cs" Inherits="People" Title="People" %>

<%@ MasterType VirtualPath="~/MimeMaster01.master" %>
 

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

    <center>

    <ajaxext:UpdatePanel ID="uppnlSelector" runat="Server" UpdateMode="Conditional">

    <ContentTemplate>

    <asp:Panel ID="pnlSelector" runat="Server">

        <asp:Panel ID="pnlSelOptions" runat="server" GroupingText=" Which records? " Width="200px" 

                   Height="65px" CssClass="smallGroupText" HorizontalAlign="Left">

            <asp:CheckBox ID="chkActive" runat="server" Text="Current ME members" Checked="true" CssClass="smallGroupText" AutoPostBack="true" OnCheckedChanged="chkActive_CheckedChanged" />   

            <br />

            <asp:CheckBox ID="chkInvolved" runat="server" Text="Involved in ME" Checked="true" CssClass="smallGroupText" AutoPostBack="true" OnCheckedChanged="chkInvolved_CheckedChanged" />    

        </asp:Panel>    

        <br />

    

        <asp:ListBox ID="lbxCouples" runat="server" CssClass="listbox" OnSelectedIndexChanged="lbxCouples_SelectedIndexChanged" AutoPostBack="True">    

        </asp:ListBox>

        <ajaxToolkit:ListSearchExtender ID="ajaxLstCouples" runat="server" TargetControlID="lbxCouples" PromptCssClass="ListSearchExtenderPrompt" ></ajaxToolkit:ListSearchExtender>

    </asp:Panel>

    <!-- <asp:Panel ID="pnlSelector" > -->

    </ContentTemplate>

    </ajaxext:UpdatePanel>

    

    </center>

        

</asp:Content>
 

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

    <ajaxext:UpdatePanel ID="uppnlSpousal" runat="server" UpdateMode="Conditional">

    <ContentTemplate>    

        

    <asp:Panel ID="pnlSpousalTitle" runat="server" CssClass="collapsePanelHeader"> 

        <asp:Image ID="imgCollapse" runat="server" ImageUrl="~/Graphics/expand.jpg"/>&nbsp;&nbsp;

            Spousal Details&nbsp;&nbsp;        

        <asp:Label ID="Label1" runat="server">(Show Details...)</asp:Label>

        <br />

    </asp:Panel><br />

    

    <asp:Panel ID="pnlSpousalContent" runat="server" CssClass="collapsePanel">        
 

       <ajaxToolkit:CollapsiblePanelExtender ID="cpe01" runat="Server" 

            TargetControlID="pnlSpousalContent"

            ExpandControlID="imgCollapse" 

        </ajaxToolkit:CollapsiblePanelExtender>
 

     

        <a name="theSpousalTop" ></a>  

                

        <br />

        

        <asp:FormView  ID="fvSpousal" runat="server" DefaultMode="ReadOnly" OnDataBound="fvSpousal_DataBound" DataSourceID="spousalODS"

                EnableViewState="true" DataKeyNames="C_Id,SP1_Id,SP2_Id" CssClass="smallFontSize" OnModeChanging="fvSpousal_ModeChanging" 

                OnItemCommand="fvSpousal_ItemCommand" OnItemUpdating="FvSpousal_ItemUpdating"  OnItemInserting="FvSpousal_ItemInserting">  
 

               

                <ItemTemplate>

                 <ajaxToolkit:ConfirmButtonExtender ID="cbe" runat="server"

            TargetControlID="btnDeleteI"

            ConfirmText="Are you sure you want to delete this couple?"  />

                &nbsp;&nbsp;

                <asp:Button ID="btnEditI"   runat="Server" Text="Edit" CssClass="buttons"  CommandName="EDIT"  />

                &nbsp;&nbsp;

		.....................

                <br />                

            </ItemTemplate> 

             

            <EditItemTemplate>

                &nbsp;&nbsp;

                <asp:Button ID="btnUpdateE"   runat="Server" Text="Update" CssClass="buttons"  CommandName="Update" />

                &nbsp;&nbsp;

		..................

                <br />        

            </EditItemTemplate>

                                       

        </asp:FormView>                       

        

    </ContentTemplate>

    </ajaxext:UpdatePanel>              

    <br />
 

        <asp:ObjectDataSource ID="spousalODS" runat="Server" TypeName="BusinessLogic.Business" DataObjectTypeName="DataTransferObjects.SpouseODS_DO"

            SelectMethod="GetCouple" UpdateMethod="SpousalODS_Update"  InsertMethod="SpousalODS_Insert" DeleteMethod="SpousalODS_Delete"

            OnSelected="spousalODS_Selected" OnSelecting="spousalODS_Selecting" OnUpdated="SpousalODS_Updated" OnInserted="SpousalODS_Inserted"

             OnDeleted="SpousalODS_Deleted"

     OldValuesParameterFormatString="{0}"  >

            <SelectParameters >

               <asp:QueryStringParameter Name="CoupleId"   DbType="Int32" Direction="Input"  />

            </SelectParameters>           

            <InsertParameters>

            <asp:Parameter Name="@newCoupleId" Direction="Output" Type="Int32" />

            </InsertParameters>

         </asp:ObjectDataSource>  

         

    <asp:ObjectDataSource ID="portfolioODS" runat="Server" SelectMethod="GetPortfolios" TypeName="BusinessLogic.Business">

    </asp:ObjectDataSource>    

    <asp:ObjectDataSource ID="titleODS" runat="Server" SelectMethod="GetTitles" TypeName="BusinessLogic.Business">

    </asp:ObjectDataSource>    

    

</asp:Content>

Open in new window

0
Comment
Question by:allanmark
3 Comments
 
LVL 12

Expert Comment

by:GuitarRich
ID: 24364962
how did you change the stored proc? does it now return an empty resultset or does it just return out of the stored proc without returning any data? You'll need at least an empty resultset for the page to work ok I think.
0
 
LVL 7

Accepted Solution

by:
zwei earned 250 total points
ID: 24365018
Exception:  is not a valid value for Int32.
You're trying to store a value to an int that is not an int somewhere.

I think it's line 137:

<asp:QueryStringParameter Name="CoupleId"   DbType="Int32" Direction="Input"  />

Open in new window

0
 

Author Closing Comment

by:allanmark
ID: 31580544
Spot on!! Many thanks!!!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Server Error 11 48
ASP.net Javascript use multiple sliders 2 19
Not seen Link button 5 19
rebind a grid after user clicks on node in treeview 1 17
For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now