<asp:SqlDataSource ID="HopefulDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand= "SELECT id, regGroupID, amountReceived, other FROM table"
UpdateCommand="UPDATE table
SET [amountReceived] = @amountReceived
WHERE [regGroupID] = @regGroupID">
<SelectParameters>
<asp:ControlParameter ControlID="ddlCourses" Name="ddlSelectedCourse" PropertyName="SelectedValue" Type="String" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="regGroupID" Type="Int32" />
<asp:Parameter Name="amountReceived" Type="Decimal" />
other parameters
<asp:Parameter Name="id" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
当我将“ WHERE [regGroupID] = @regGroupID”更改为
哪里[id] = @id
要么
其中[regGroupID] = 2
最佳答案
您需要在DataKeyNames
声明的GridView
集合中添加“ regGroupID”。像这样:
<asp:GridView ID="yourGridViewId" DataKeyNames="regGroupID" ... >
...
</asp:GridView>
请参见
DataKeyNames
documentation:您必须设置DataKeyNames属性才能自动
更新和删除GridView控件的功能才能正常工作。价值
这些关键字段中的一个被传递给数据源控件,以便
指定要更新或删除的行。
注意:自从我使用它已经有一段时间了,所以您可能需要同时包含主键和其他键字段。像这样:
DataKeyNames="id,regGroupID"