首页 > 解决方案 > 过程没有参数并且提供了参数(字面上没有参数)

问题描述

我一直在使用此存储过程时遇到错误,因此我尝试将其简化。出于某种原因,当我根本不使用任何参数时,我仍然收到一条错误消息,说 SP 需要一个参数。

我应该注意,我正试图通过 ASP 中的 Telerik RadDataform 来实现这一点。难道 Telerik 在这里添加了一个偷偷摸摸的参数?

这是SP:

ALTER procedure [dbo].[NewEmployee_Update]                     
as
insert
    NewEmployeeDetails
select top 1
    NE.FormHeaderID,
    NE.VersionNumber + 1,
    getdate(),              -- AddDate
    'vibribbon',
    'Bart',
    'Simpson',
    'El Barto',
    'Rascal'
from
    OnlineFormHeader H
    inner join NewEmployeeDetails NE on NE.FormHeaderID = H.RecID
where
    H.RecID = 3
order by
    NE.VersionNumber desc

和 ASP 数据源:

<asp:SqlDataSource ID="dsEmployeeDetails" runat="server" ConnectionString="<%$ ConnectionStrings:OnlineStaffFormsConnectionString %>" InsertCommand="NewEmployee_Insert"
  InsertCommandType="StoredProcedure" UpdateCommand="NewEmployee_Update" UpdateCommandType="StoredProcedure" SelectCommand="select top 1
    NE.*
from
    OnlineFormHeader H
    inner join NewEmployeeDetails NE on NE.FormHeaderID = H.RecID
where
    H.RecID = @formHeaderID
order by
    NE.VersionNumber desc">
            <SelectParameters>
                <asp:QueryStringParameter Name="formHeaderID" QueryStringField="ID" Type="Int32" />
            </SelectParameters>
            <InsertParameters>
                <asp:SessionParameter Name="currentUser" SessionField="currentUser" />
                <asp:Parameter Name="FirstName" Type="String" />
                <asp:Parameter Name="LastName" Type="String" />
                <asp:Parameter Name="PreferredName" Type="String" />
                <asp:Parameter Name="JobTitle" Type="String" />
            </InsertParameters>
        </asp:SqlDataSource>
    </div>
</asp:Content>

标签: sqlasp.nettelerik

解决方案


Telerik DataForm 似乎自动将要更新的记录的唯一 ID 添加到参数集。

在这里可能更引人注目,因为我正在伪造“更新”命令来代替插入。


推荐阅读