sql - 过程没有参数并且提供了参数(字面上没有参数)
问题描述
我一直在使用此存储过程时遇到错误,因此我尝试将其简化。出于某种原因,当我根本不使用任何参数时,我仍然收到一条错误消息,说 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>
解决方案
Telerik DataForm 似乎自动将要更新的记录的唯一 ID 添加到参数集。
在这里可能更引人注目,因为我正在伪造“更新”命令来代替插入。
推荐阅读
- javascript - 如何在反应中使用useeffect钩子?
- css - width:auto 和 max-width:fit-content 有什么区别?
- c# - .NET Core MVC 中 URL 内的双斜杠
- android - 无法在 Android 11 上访问 obb 目录
- ios - 在没有 PKCanvasView 的情况下使用 PKToolPicker
- android - 从后台返回带有 MapViewLite 的屏幕时使用 Here Lite Maps 崩溃
- excel - 缺少工具参考
- c++ - 在 C++ 中使用 const 表示 std::pair
- javascript - 如何从 Javascript 中的嵌套 JSON 中获取字段?
- javascript - 如何使用父 ID 修改子 ID?