我的查询如下:
<asp:SqlDataSource ID="UpdateFullNameSQL" runat="server" ConnectionString="<%$ ConnectionStrings:UserQueries %>" ProviderName="<%$ ConnectionStrings:UserQueries.ProviderName %>"
UpdateCommand="update users set firstname = :changefirstname, lastname = :changelastname where username = :currentusername">
<UpdateParameters>
<asp:ControlParameter ControlID="ChangeFirstNameBox" Name="changefirstname" PropertyName="Text" Type="Empty" />
<asp:ControlParameter ControlID="ChangeLastNameBox" Name="changelastname" PropertyName="Text" Type="Empty" />
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="UsernameBox" Name="currentusername" PropertyName="Text" Type="Empty" />
</SelectParameters>
</asp:SqlDataSource>
所以我有两个我想要更新的参数和一个我想用来更改数据的参数,它与selectparameter的数据匹配。当我想执行它时,它会显示ORA-01008异常。 我的代码隐藏只有一个updatefullnamesql.update();功能
我在这里错过了什么/做错了什么?
答案 0 :(得分:0)
在更新命令中,您应使用@
代替:
。即:
UpdateCommand="update users set firstname = @changefirstname,
lastname = @changelastname where username = @currentusername;"
此外,您必须将@currentusername指定为更新参数
<UpdateParameters>
...
<asp:ControlParameter ControlID="UsernameBox"
Name="currentusername" PropertyName="Text" Type="Empty" />
</UpdateParameters>