ASP.NET GridView编辑提交时UpdateWish存储过程参数过多报错如何解决?
问题原因
报错提示存储过程UpdateWish接收的参数数量超出定义,原因是你的GridView日期列的dateInserted字段使用了双向绑定语法Bind(),SqlDataSource会默认将所有双向绑定的字段自动作为更新参数传给存储过程。你的存储过程仅定义了@wishID和@dailyHours两个入参,多出来的@dateInserted参数就触发了该报错。
解决方法
仅需修改日期列的绑定方式,将不需要参与更新的dateInserted字段的双向绑定改为单向只读绑定即可,无需调整其他代码:
找到GridView中Date列的ItemTemplate代码:
<asp:Label ID="LabelDate" font-size="1.0em" runat="server" Text='<%# Bind("dateInserted") %>'></asp:Label>
修改为:
<asp:Label ID="LabelDate" font-size="1.0em" runat="server" Text='<%# Eval("dateInserted") %>'></asp:Label>
修改后dateInserted字段仅作展示使用,不会被当作更新参数传递,参数数量和存储过程定义匹配,报错即可解决。
内容的提问来源于stack exchange,提问作者mark davies
相关产品推荐
相关产品推荐

