UpdateNamesストアド プロシージャは@Firstという名前のパラメーターを 1 つしか取りませんが、Lastという名前の追加のパラメーターを定義することができ、更新は引き続き成功します。
<asp:SqlDataSource ... UpdateCommand="UpdateNames"
UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="First" Type="String" />
<asp:Parameter Name="Last" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
ただし、ObjectDataSource コントロールを扱う場合、ObjectDataSource で定義されたパラメーターの数は、UpdateNames()メソッドで定義されたパラメーターの数と正確に一致する必要があります。したがって、UpdateNames()がFirstという名前のパラメーターを 1 つだけ受け取る場合、次の例では例外が発生します。
<asp:ObjectDataSource ... UpdateMethod="UpdateNames">
<UpdateParameters>
<asp:Parameter Name="First" Type="String" />
<asp:Parameter Name="Last" Type="String" />
</UpdateParameters>
</asp:ObjectDataSource>
A) ObjectDataSource のマッチング アルゴリズムが SqlDataSource のマッチング アルゴリズムほど柔軟でなく、余分なパラメーターを無視するのはなぜですか?
ありがとうございました