即使UpdateNames存储过程只接受一个名为@First的参数,我们仍然可以定义名为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的参数,以下将导致异常
<asp:ObjectDataSource ... UpdateMethod="UpdateNames">
<UpdateParameters>
<asp:Parameter Name="First" Type="String" />
<asp:Parameter Name="Last" Type="String" />
</UpdateParameters>
</asp:ObjectDataSource>
A) 为什么 ObjectDataSource 的匹配算法不如 SqlDataSource 的匹配算法灵活,从而忽略任何额外的参数?
谢谢