单击“更新”时,为什么我的GridView不会更新?

时间:2013-08-13 15:51:52

标签: c# asp.net gridview

我正在编写一个带有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

我添加了建议的标记,但仍然无效。我怎么设置参数?

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>