4
<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」を次のいずれかに変更すると機能します

WHERE [id] = @id

また

WHERE [regGroupID] = 2

4

1 に答える 1

5

DataKeyNames宣言のコレクションに「regGroupID」を追加する必要がありますGridView。このようなもの:

<asp:GridView ID="yourGridViewId" DataKeyNames="regGroupID" ... >
    ...
</asp:GridView>

DataKeyNamesドキュメントを参照してください:

GridView コントロールの自動更新機能と削除機能を機能させるには、DataKeyNames プロパティを設定する必要があります。これらのキー フィールドの値は、更新または削除する行を指定するためにデータ ソース コントロールに渡されます。

注: これを使用してからしばらく経っているため、主キーと他のキー フィールドの両方を含める必要がある場合があります。このような:

DataKeyNames="id,regGroupID"
于 2013-02-26T20:04:04.160 に答える