Asp.net 将aspgridview绑定到aspsqldatasource时必须声明标量变量

Asp.net 将aspgridview绑定到aspsqldatasource时必须声明标量变量,asp.net,gridview,sqldatasource,Asp.net,Gridview,Sqldatasource,我很难理解aspsqldatasource中的参数如何知道从哪里获取它们的值。以下是一个例子: 我的用户表如下: CREATE TABLE HR.Users ( userid CHAR(3) NOT NULL, passwordhash BINARY(64) NOT NULL, firstname NVARCHAR(20) NOT NULL, lastname NVARCHAR(20) NOT NULL, sex NCHAR(1) NOT NULL, divisionid TINYINT NOT

我很难理解aspsqldatasource中的参数如何知道从哪里获取它们的值。以下是一个例子: 我的用户表如下:

CREATE TABLE HR.Users
(
userid CHAR(3) NOT NULL,
passwordhash BINARY(64) NOT NULL,
firstname NVARCHAR(20) NOT NULL,
lastname NVARCHAR(20) NOT NULL,
sex NCHAR(1) NOT NULL,
divisionid TINYINT NOT NULL,
mandatoryworkingdays VARCHAR(6),
superiorinunitid CHAR(3),
managerid CHAR(3),
privilage NVARCHAR(3) NOT NULL,
salt UNIQUEIDENTIFIER,
active BIT CONSTRAINT DFT_Active DEFAULT(1),
DateKey INT NOT NULL,
availablevacations INT NOT NULL CONSTRAINT DFT_NumberOfVacations DEFAULT(880),
vacationlastupdatemonth VARCHAR(2) NOT NULL CONSTRAINT DFT_VacationUpdateMonth DEFAULT(CONVERT(VARCHAR(2),  CONVERT([dbo].[PersianDate], dbo.[UDF_Gregorian_To_Persian](GETDATE())).Month)),
ishourly BIT NOT NULL CONSTRAINT DFT_Hourly DEFAULT(1),
CONSTRAINT PK_Users PRIMARY KEY(userid),
CONSTRAINT FK_Users_Devisions FOREIGN KEY(divisionid) REFERENCES HR.Divisions(divisionid),
CONSTRAINT FK_Users_Date FOREIGN KEY(DateKey) REFERENCES dbo.DimDate(DateKey)
);
我使用aspsqldatasource将其绑定到aspgridview:

<asp:SqlDataSource ID="SqlDataSourcePSM" runat="server"
SelectCommand="id, name, unit, startdate, remaining, superid, managerid, [ishourly] FROM [PSM].[HR].[ShowUsers]"
DeleteCommand="UPDATE HR.Users SET active=0 WHERE [userid] = @id"
UpdateCommand="UPDATE HR.Users SET [managerid] = @managerid, [superiorinunitid] = @superid, [ishourly] = @ishourly  WHERE [userid] = @id">
<DeleteParameters>
<asp:Parameter Name="@id" Type="Char" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="@id" Type="Char" />
<asp:Parameter Name="@superid" Type="Char" />
<asp:Parameter Name="@managerid" Type="Char" />
<asp:Parameter Name="@ishourly" Type="Byte"  DefaultValue="0"/>
</UpdateParameters>
</asp:SqlDataSource>

使用aspgridview更新aspsqldatasource时,我收到

System.Data.SqlClient.SqlException:必须声明标量变量 “@id”

错误