<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"

07-24 09:44