必须声明标量变量,但它们存在于标记中
本文关键字:存在 于标记 声明 标量 变量 | 更新日期: 2023-09-27 18:18:11
我有一个SqlDataSource,我正在使用GridView。我使用了GridView的删除功能,就像我使用它对其他的更新功能一样,但出于某种原因,这告诉我,我的参数没有被声明。你会在代码中看到我把它们放在那里,我只是从更新参数中复制了它们。我被难住了,为什么sql告诉我,我没有声明变量,而他们显然在那里。
感谢<asp:SqlDataSource ID="SqlDataSourceVisitors" runat="server" ConnectionString="connstring" DeleteCommand="DELETE FROM [RegisteredVisitors] WHERE [PK] = @PK; UPDATE [dbo].[Users] SET [NumberOfVisitors] = (SELECT [NumberOfVisitors] FROM [dbo].[NumberOfVisitors] WHERE [ResidentName] = @ResidentName) -1 WHERE [ResidentName] = @ResidentName" InsertCommand="INSERT INTO [RegisteredVisitors] ([ResidentName], [ResidentAddress], [VisitorCode], [VisitorName]) VALUES (@ResidentName, @ResidentAddress, @VisitorCode, @VisitorName)" SelectCommand="SELECT * FROM [RegisteredVisitors] WHERE ([ResidentName] = @ResidentName)" UpdateCommand="UPDATE [RegisteredVisitors] SET [ResidentName] = @ResidentName, [ResidentAddress] = @ResidentAddress, [VisitorCode] = @VisitorCode, [VisitorName] = @VisitorName WHERE [PK] = @PK" ProviderName="System.Data.SqlClient">
<DeleteParameters>
<asp:Parameter Name="PK" Type="Int32" />
<asp:Parameter Name="ResidentName" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="ResidentName" Type="String" />
<asp:Parameter Name="ResidentAddress" Type="String" />
<asp:Parameter Name="VisitorCode" Type="Int32" />
<asp:Parameter Name="VisitorName" Type="String" />
</InsertParameters>
<SelectParameters>
<asp:ControlParameter ControlID="txtboxSelectedResident" Name="ResidentName" PropertyName="Text" Type="String" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="ResidentName" Type="String" />
<asp:Parameter Name="ResidentAddress" Type="String" />
<asp:Parameter Name="VisitorCode" Type="Int32" />
<asp:Parameter Name="VisitorName" Type="String" />
<asp:Parameter Name="PK" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
检查你的语法,你的Delete命令有错误:
DeleteCommand="DELETE FROM [RegisteredVisitors] WHERE [PK] = @PK
UPDATE [dbo].[Users] SET [NumberOfVisitors] = (SELECT [NumberOfVisitors] FROM [dbo].[NumberOfVisitors] WHERE [ResidentName] = @ResidentName) -1 WHERE [ResidentName] = @ResidentName"
如果你试图执行多个查询,你需要用";"