This is a migrated thread and some comments may be shown as answers.

Invalid cast exception

1 Answer 169 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Elliott
Top achievements
Rank 2
Elliott asked on 12 Dec 2011, 05:43 PM
I changed a float to an int on a SQL table and when I go to edit the field it crashes
the grid
<telerik:RadGrid ID="rgEditOrder" OnNeedDataSource="rgEditOrder_NeedDataSource" OnItemCommand="rgEditOrder_ItemCommand" ShowFooter="True" Skin="Sunset" runat="server">
<GroupingSettings CaseSensitive="false" />
<MasterTableView DataKeyNames="OrderSeq" AutoGenerateColumns="false" AllowSorting="true" AllowPaging="true" AllowFilteringByColumn="False" EditMode="InPlace" >
<Columns>
    <telerik:GridBoundColumn UniqueName="StoreNumber" DataField="StoreNumber" HeaderText="Store #" DataFormatString="{0:#####}" DataType="System.Int32" Aggregate="None" ReadOnly="True">
        <HeaderStyle Width="36px" />
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn UniqueName="BoothNumber" DataField="BoothNumber" HeaderText="Booth #" DataFormatString="{0:#####}" DataType="System.Int32" Aggregate="None" ReadOnly="True">
        <HeaderStyle Width="36px" />
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn UniqueName="ItemID" DataField="ItemID" HeaderText="Item" DataType="System.Double" Aggregate="None" ReadOnly="True">
        <HeaderStyle Width="36px" />
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn UniqueName="ItemDescription" DataField="ItemDescription" HeaderText="Description" ReadOnly="True">
        <HeaderStyle Width="120px" />
    </telerik:GridBoundColumn>
    <telerik:GridDateTimeColumn UniqueName="ShipDate" DataField="ShipDate" PickerType="DatePicker" HeaderText="Ship Date" DataFormatString="{0:d}" DataType="System.DateTime" ReadOnly="True">
        <HeaderStyle Width="44px" />                    
    </telerik:GridDateTimeColumn>
    <telerik:GridTemplateColumn UniqueName="Qty" HeaderText="Cases" DataField="Qty" DataType="System.Int32" Aggregate="Sum" >
        <ItemTemplate>
            <asp:Label ID="lblQty" Text='<%# Bind("Qty") %>' Width="32px" runat="server" />
        </ItemTemplate>
        <EditItemTemplate>
            <telerik:RadNumericTextBox ID="rntbQty" Value='<%# Eval("Qty") %>' OnTextChanged="rntbQty_TextChanged" AutoPostBack="True" Width="32px" runat="server">
                <NumberFormat DecimalDigits="0" />
            </telerik:RadNumericTextBox>
        </EditItemTemplate>
        <HeaderStyle Width="32px" />
    </telerik:GridTemplateColumn>
    <telerik:GridBoundColumn UniqueName="NetCost" DataField="NetCost" HeaderText="Net Cost" DataFormatString="{0:C2}" DataType="System.Double" Aggregate="None" ReadOnly="True">
        <HeaderStyle Width="50px" />
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn UniqueName="ItemTotal" DataField="ItemTotal" HeaderText="Item Total" DataFormatString="{0:C2}" DataType="System.Double" Aggregate="Sum" ReadOnly="True">
        <HeaderStyle Width="50px" />
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn UniqueName="PageNumber" DataField="PageNumber" HeaderText="Page" DataFormatString="{0:#####}" DataType="System.Int32" Aggregate="None" ReadOnly="True">
        <HeaderStyle Width="36px" />
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn UniqueName="VendorNumber" DataField="VendorNumber" HeaderText="Vendor" DataFormatString="{0:#####}" DataType="System.Int32" Aggregate="None" ReadOnly="True">
        <HeaderStyle Width="36px" />
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn UniqueName="DepartmentNumber" DataField="DepartmentNumber" HeaderText="Depart" DataFormatString="{0:##}" DataType="System.Int32" Aggregate="None" ReadOnly="True">
        <HeaderStyle Width="26px" />
    </telerik:GridBoundColumn>
    <telerik:GridBoundColumn UniqueName="OrderSeq" DataField="OrderSeq" DataType="System.Int64" Visible="false">
    </telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<ClientSettings>
    <ClientEvents OnRowDblClick="RowDblClick" />
    <ClientEvents OnRowClick="RowClick" />
    <ClientEvents OnRowDataBound="RowDataBound" />
</ClientSettings>
</telerik:RadGrid>
some code behind
protected void rgEditOrder_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
    DataSet dsOrder = new DataSet();
    if (txtStoreHidden.Value == "")
    {
        return;
    }
    WsOrderSystem wsOrder = new WsOrderSystem();
    dsOrder = wsOrder.GetOnlineOrder(Convert.ToDouble(txtStoreHidden.Value), txtChain.Value);
    rgEditOrder.DataSource = dsOrder;
    Session["EditOrderView"] = dsOrder;
}
the stored procedure
ALTER PROCEDURE [dbo].[get_online_order]
    @StoreNumber BIGINT,
    @ChainID VARCHAR(20)
AS
    BEGIN
    DECLARE @ShowOrders TABLE
        (StoreNumber BIGINT,
         BoothNumber INT,
         VendorNumber INT,
         ItemID INT,
         ShipDate DATETIME,
         Qty INT)
    IF @ChainID IS NULL
        SELECT @ChainID=ChainID
        FROM Stores
        WHERE StoreNumber=@StoreNumber
         
    IF @ChainID=''
        BEGIN
        INSERT INTO @ShowOrders (StoreNumber,BoothNumber,VendorNumber,ItemID,ShipDate,Qty)
        SELECT StoreNumber,
               BoothNumber,
               VendorNumber,
               ItemID,
               ShipDate,
               SUM(Qty) AS Qty
        FROM Orders
        WHERE StoreNumber=@StoreNumber AND Qty>0
        GROUP BY StoreNumber,BoothNumber,VendorNumber,ItemID,ShipDate
         
        SELECT AO.StoreNumber,
               AO.BoothNumber,
               AO.ItemID,
               ItemDescription,
               AO.ShipDate,
               CAST(AO.Qty AS INT) AS Qty,
               MinQty=CASE WHEN t.Qty IS NULL THEN 0
                           ELSE t.Qty END,
               AO.NetCost,
               AO.Qty*AO.NetCost AS ItemTotal,
               AO.PageNumber,
               AO.VendorNumber,
               DepartmentNumber,
               DepartmentDescription,
               ROW_NUMBER() OVER (ORDER BY DateAddEdit DESC) AS OrderSeq,
               CONVERT(VARCHAR,ShipStart1,101) AS ShipStart1,
               CONVERT(VARCHAR,ShipEnd1,101) AS ShipEnd1,
               CONVERT(VARCHAR,ShipStart2,101) AS ShipStart2,
               CONVERT(VARCHAR,ShipEnd2,101) AS ShipEnd2,
               CONVERT(VARCHAR,ShipStart3,101) AS ShipStart3,
               CONVERT(VARCHAR,ShipEnd3,101) AS ShipEnd3,
               OrderSeq AS Seq                    
        FROM AfterOrders AO
        INNER JOIN Items I ON AO.ItemID=I.ItemID       
        LEFT OUTER JOIN @ShowOrders t
        ON AO.StoreNumber=t.StoreNumber
            AND AO.BoothNumber=t.BoothNumber
            AND AO.VendorNumber=t.VendorNumber
            AND AO.ItemID=t.ItemID
            AND AO.ShipDate=t.ShipDate     
        WHERE AO.StoreNumber=@StoreNumber AND AO.Qty>0
        ORDER BY Seq
        END
        ELSE
        BEGIN
        INSERT INTO @ShowOrders (StoreNumber,BoothNumber,VendorNumber,ItemID,ShipDate,Qty)
        SELECT O.StoreNumber,
               BoothNumber,
               VendorNumber,
               ItemID,
               ShipDate,
               SUM(Qty) AS Qty
        FROM Orders O
        INNER JOIN Stores S
        ON O.StoreNumber=S.StoreNumber
        WHERE ChainID=@ChainID AND Qty>0
        GROUP BY O.StoreNumber,BoothNumber,VendorNumber,ItemID,ShipDate    
         
        SELECT AO.StoreNumber,
               AO.BoothNumber,
               AO.ItemID,
               ItemDescription,
               AO.ShipDate,
               CAST(AO.Qty AS INT) AS Qty,
               MinQty=CASE WHEN t.Qty IS NULL THEN 0
                           ELSE t.Qty END,        
               AO.NetCost,
               AO.Qty*AO.NetCost AS ItemTotal,
               AO.PageNumber,
               AO.VendorNumber,
               DepartmentNumber,
               DepartmentDescription,
               ROW_NUMBER() OVER (ORDER BY AO.DateAddEdit DESC) AS OrderSeq,
               CONVERT(VARCHAR,ShipStart1,101) AS ShipStart1,
               CONVERT(VARCHAR,ShipEnd1,101) AS ShipEnd1,
               CONVERT(VARCHAR,ShipStart2,101) AS ShipStart2,
               CONVERT(VARCHAR,ShipEnd2,101) AS ShipEnd2,
               CONVERT(VARCHAR,ShipStart3,101) AS ShipStart3,
               CONVERT(VARCHAR,ShipEnd3,101) AS ShipEnd3,
               OrderSeq AS Seq        
        FROM AfterOrders AO
        INNER JOIN Stores S ON AO.StoreNumber=S.StoreNumber
        INNER JOIN Items I ON AO.ItemID=I.ItemID
        LEFT OUTER JOIN @ShowOrders t
        ON AO.StoreNumber=t.StoreNumber
            AND AO.BoothNumber=t.BoothNumber
            AND AO.VendorNumber=t.VendorNumber
            AND AO.ItemID=t.ItemID
            AND AO.ShipDate=t.ShipDate             
        WHERE ChainID=@ChainID AND AO.Qty>0
        ORDER BY AO.ItemID,AO.ShipDate,AO.StoreNumber
        END
    END


is this my problem?
http://www.telerik.com/help/aspnet-ajax/input-inside-databound-controls.html

1 Answer, 1 is accepted

Sort by
0
Accepted
Elliott
Top achievements
Rank 2
answered on 12 Dec 2011, 08:39 PM
please mark this as solved - that was the problem
RADNumericTextBox needs to be set with DBValue, not Value if the input is Int
Tags
Grid
Asked by
Elliott
Top achievements
Rank 2
Answers by
Elliott
Top achievements
Rank 2
Share this question
or