我正在编写一个带有GridView
的asp.net应用程序。我有删除命令正常工作;但是,更新命令无法正常工作。我真的很想远离为这种情况创建模板字段,因为我将在同一页面上有大约5个不同的GridView。
这是我的标记代码。
<asp:GridView ID="GridView1" runat="server"
DataSourceID="DataSource" AutoGenerateColumns="False"
DataKeyNames="ID" >
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="true" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="DefaultValue" HeaderText="DefaultValue" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="DataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:MyApp.Web_App.Properties.Settings.DB %>"
SelectCommand="SELECT [ID], [Name], [DefaultValue] FROM [MyTable] WHERE ([MyID] = @MyID)"
DeleteCommand="DELETE FROM dbo.MyTable WHERE (ID = @ID)"
UpdateCommand="UPDATE dbo.MyTable SET Name = @Name, DefaultValue = @DefaultValue WHERE (ID = @ID)" >
<SelectParameters>
<asp:SessionParameter Name="MyID" SessionField="My_ID" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="ADRoleToAttributeDefaultID" Type="Int32" />
<asp:Parameter Name="ADAttrName" Type="String" />
<asp:Parameter Name="ADAttrDefaultValue" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
该表填充数据,我可以在表上执行删除操作。我只是不确定为什么更新不起作用。
编辑1
我添加了建议的标记,但仍然无效。我怎么设置参数?
答案 0 :(得分:2)
在SelectParameters之后添加UpdateParameters:
<SelectParameters>
<asp:SessionParameter Name="MyID" SessionField="My_ID" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="ID" Type="Int32" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="DefaultValue" Type="String" />
</UpdateParameters>