Asp.net 如何在网格视图中使用delete命令进行更新

Asp.net 如何在网格视图中使用delete命令进行更新,asp.net,Asp.net,我有3个网页。管理员、学生和教师。我在此页面的每个页面上都使用了网格视图。我的表中有一列为“status”。该列的默认值为0。我想在gridview中单击delete时将该值更新为1。我已经编写了以下代码。但它不起作用。请帮忙 这是.aspx文件代码- <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TEMPRUJUConnectionStrin

我有3个网页。管理员、学生和教师。我在此页面的每个页面上都使用了网格视图。我的表中有一列为“status”。该列的默认值为0。我想在gridview中单击delete时将该值更新为1。我已经编写了以下代码。但它不起作用。请帮忙

这是.aspx文件代码-

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TEMPRUJUConnectionString %>" 
 SelectCommand="SELECT * FROM [login] WHERE ([username] = @username)" 
 DeleteCommand="UPDATE [login] SET [status]= 1 WHERE [id]=@id" 
 InsertCommand="INSERT INTO [login] ([name], [midname], [surname], [username], [password], [contact], [dob], [email], [address], [occupation], [ltype]) VALUES (@name, @midname, @surname, @username, @password, @contact, @dob, @email, @address, @occupation, @ltype)" 
 UpdateCommand="UPDATE [login] SET [name] = @name, [midname] = @midname, [surname] = @surname, [username] = @username, [password] = @password, [contact] = @contact, [dob] = @dob, [email] = @email, [address] = @address, [occupation] = @occupation, [ltype] = @ltype WHERE [Id] = @Id">
        <DeleteParameters>
            <asp:Parameter Name="Id" Type="Int32" />
        </DeleteParameters>  

当您有
SqlDataSource
时,您无需实现
GridView1\u行删除

首先,您必须告诉
SqlDataSource
,在您的情况下,
@id
可以在哪里找到
delete命令的值。。。为此,您需要通过数据库唯一键字段名在
GridView
上设置
DataKeyNames
属性,在您的示例中是
id

<asp:GridView ID="GridView1" runat="server" DataKeyNames="ID" DataSourceID="SqlDataSource1">
最后,您需要用
gridView
发送
Delete
命令,为此,您可以
gridView
控件上启用Delete
,将该
添加到网格视图标记中,或者,您可以
将此字段转换为TemplateField
,并使用具有
CommandName属性的任何控件创建自己的模板,并将该属性设置为关键字
删除
,如下所示:

<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Delete" Text="Delete me"></asp:LinkButton>
这是一个仅启用了
删除
的示例:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:CommandField ShowDeleteButton="True" />
            <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
            <asp:BoundField DataField="UserID" HeaderText="UserID" SortExpression="UserID" />
            <asp:BoundField DataField="Age" HeaderText="Age" SortExpression="Age" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" 
        DeleteCommand="UPDATE Profiles SET Age = Age+1 where id = @id" SelectCommand="SELECT * FROM Profiles">
        <DeleteParameters>
            <asp:ControlParameter ControlID="GridView1" Name="id" PropertyName="SelectedDataKey" />
        </DeleteParameters>
    </asp:SqlDataSource>


当您拥有
SqlDataSource
时,我通过每个delete命令在示例中增加
age
,您无需实现
GridView1\u行删除

首先,您必须告诉
SqlDataSource
,在您的情况下,
@id
可以在哪里找到
delete命令的值。。。为此,您需要通过数据库唯一键字段名在
GridView
上设置
DataKeyNames
属性,在您的示例中是
id

<asp:GridView ID="GridView1" runat="server" DataKeyNames="ID" DataSourceID="SqlDataSource1">
最后,您需要用
gridView
发送
Delete
命令,为此,您可以
gridView
控件上启用Delete
,将该
添加到网格视图标记中,或者,您可以
将此字段转换为TemplateField
,并使用具有
CommandName
属性的任何控件创建自己的模板,并将该属性设置为关键字
删除
,如下所示:

<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Delete" Text="Delete me"></asp:LinkButton>
这是一个仅启用了
删除
的示例:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:CommandField ShowDeleteButton="True" />
            <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
            <asp:BoundField DataField="UserID" HeaderText="UserID" SortExpression="UserID" />
            <asp:BoundField DataField="Age" HeaderText="Age" SortExpression="Age" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestConnectionString %>" 
        DeleteCommand="UPDATE Profiles SET Age = Age+1 where id = @id" SelectCommand="SELECT * FROM Profiles">
        <DeleteParameters>
            <asp:ControlParameter ControlID="GridView1" Name="id" PropertyName="SelectedDataKey" />
        </DeleteParameters>
    </asp:SqlDataSource>

我通过每个删除命令在样本中增加
age