Параметры SqlDataSource имеют значение null при вставке/обновлении

У меня есть SqlDataSource, прикрепленный к FormView, который используется для вставки/обновления, который раньше работал отлично, но теперь внезапно ни один из параметров не вставляется в строку (строка все еще создается с ошибкой, но все поля, кроме ID, пусты). Я дважды проверил, чтобы убедиться, что все правильные текстовые поля привязаны к имени столбца, и они есть.

Мне просто интересно, какие проблемы могут вызвать это, поскольку я в тупике. Я присоединился к методу DataBound представления формы, чтобы убедиться, что форма не восстанавливается при обратной передаче, а это не так. Я также проверил метод Inserting, и все параметры там нулевые.

РЕДАКТИРОВАТЬ: Вот разметка источника данных:

<asp:SqlDataSource runat='server' ID='dsOrders' ConnectionString="<%$ ConnectionStrings:WebConnectionString %>"
                    SelectCommand="SELECT Orders.ID, Orders.Created, Orders.ReportingCat, Orders.OrderType, Orders.Customer, Orders.Reference, Orders.RequiredDate, Contacts.ContactName AS 'ContactName', ISNULL(Orders.Collection, 0) AS 'Collection', Orders.DirectToSite, Orders.OnSite, Orders.DelAdd1, Orders.DelAdd2, Orders.DelAdd3, Orders.DelTown, Orders.DelCounty, Orders.DelPostCode, Orders.Carriage, Orders.CarriageAmount, Orders.CarriageOverrideNote, Orders.SalesPerson, Orders.Offload, Orders.DelTimeBegin, Orders.DelTimeEnd, Orders.DeliveryInstruction, Orders.SpecialInstruction, Orders.AccountsNote, Orders.Status, SalesPeople.FirstName + ' ' + CASE WHEN SalesPeople.Surname IS NULL THEN '' ELSE SalesPeople.Surname END AS SalesName, ISNULL(Orders.ContactID, '') AS ContactID, Orders.OrderNumber, Orders.QuoteNumber, Orders.CustomerOrderLink, ISNULL(Orders.ProjectDetails, 0) AS 'ProjectDetails', Orders.SalesPersonContact, Orders.DeliveryCharge, Orders.SiteName, Orders.MainContractor, Orders.Address, Orders.Town, Orders.County, Orders.Postcode FROM Orders LEFT OUTER JOIN SalesPeople ON Orders.SalesPerson = SalesPeople.ID LEFT OUTER JOIN Contacts ON Orders.ContactID = Contacts.ContactID WHERE (Orders.ID = @Order ) OR ( @Order IS NULL)"
                    InsertCommand="INSERT INTO Orders(Customer, Collection, SalesPerson, Offload, Status, ContactID, OrderNumber, QuoteNumber, ProjectDetails, SalesPersonContact, DeliveryCharge) VALUES (@Customer, @Collection, @SalesPerson, @Offload, 1, @ContactID, @OrderNumber, @QuoteNumber, @ProjectDetails, @SalesPersonContact, @DeliveryCharge); SET @ReturnID = SCOPE_IDENTITY();"
                    OnInserted="dsOrders_Inserted" OnInserting="dsOrders_Inserting" UpdateCommand="UPDATE Orders SET Customer = @Customer, Collection = @Collection, SalesPerson = @SalesPerson, Offload = @Offload, ContactID = @ContactID, OrderNumber = @OrderNumber, QuoteNumber = @QuoteNumber, ProjectDetails = @ProjectDetails, SalesPersonContact = @SalesPersonContact, DeliveryCharge = @DeliveryCharge WHERE (ID = @ID)">
                    <UpdateParameters>
                        <asp:Parameter Name="Customer" Type="String" />
                        <asp:Parameter Name="Collection" Type="Boolean" />
                        <asp:Parameter Name="SalesPerson" Type="Int32" />
                        <asp:Parameter Name="Offload" Type="Boolean" />
                        <asp:Parameter Name="ContactID" Type="Int64" />
                        <asp:Parameter Name="OrderNumber" Type="Int64" />
                        <asp:Parameter Name="QuoteNumber" Type="String" />
                        <asp:Parameter Name="ProjectDetails" Type="Boolean" />
                        <asp:Parameter Name="SalesPersonContact" Type="Int64" />
                        <asp:Parameter Name="DeliveryCharge" Type="Int32" />
                        <asp:SessionParameter Name="ID" SessionField="OrderID" Type="Int64" />  
                    </UpdateParameters>
                    <InsertParameters>
 <asp:Parameter Name="Customer" Type="String" />
                        <asp:Parameter Name="Collection" Type="Boolean" />
                        <asp:Parameter Name="SalesPerson" Type="Int32" />
                        <asp:Parameter Name="Offload" Type="Boolean" />
                        <asp:Parameter Name="ContactID" Type="Int64" />
                        <asp:Parameter Name="OrderNumber" Type="Int64" />
                        <asp:Parameter Name="QuoteNumber" Type="String" />
                        <asp:Parameter Name="ProjectDetails" Type="Boolean" />
                        <asp:Parameter Name="SalesPersonContact" Type="Int64" />
                        <asp:Parameter Name="DeliveryCharge" Type="Int32" />
                        <asp:Parameter Name="ReturnID" Direction="Output" Type="Int64" />
                    </InsertParameters>
                    <SelectParameters>
                        <asp:SessionParameter DefaultValue="null" Name="Order" SessionField="OrderID" />
                    </SelectParameters>
                </asp:SqlDataSource>

person Chris    schedule 03.08.2011    source источник


Ответы (1)


В вашей команде INSERT я не вижу ID:

INSERT INTO Orders(Customer, Collection, SalesPerson, Offload, Status, ContactID,
OrderNumber, QuoteNumber, ProjectDetails, SalesPersonContact, DeliveryCharge) VALUES
(@Customer, @Collection, @SalesPerson, @Offload, 1, @ContactID, @OrderNumber, @QuoteNumber, 
@ProjectDetails, @SalesPersonContact, @DeliveryCharge);
person Maysam    schedule 03.08.2011