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