繁体   English   中英

输入字符串的格式不正确vb.net/asp.net

[英]Input string was not in a correct format vb.net/asp.net

这是我的表单视图。

<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="recid">
<EditItemTemplate>
RECID:
<asp:TextBox ID="recid" runat="server" Text='<%# Eval("RECID") %>' ReadOnly="true" />
<br />
SHIPPER:
<asp:TextBox ID="shipper" runat="server" Text='<%# Bind("SHIPPER") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
&nbsp;
<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
</asp:FormView>

这是我的sqldatasource1

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="SELECT * FROM IMPORT WHERE (RECID = ?)"
UpdateCommand="UPDATE IMPORT SET SHIPPER=@shipper WHERE RECID=@recid" >
<SelectParameters>
<asp:ControlParameter ControlID="Label1" Name="RECID" PropertyName="Text" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="recid" Type="Int32" />
<asp:Parameter Name="shipper" Type="String" />
</UpdateParameters>
</asp:SqlDataSource> 

现在,我的问题是每次更新页面时,这都是错误输入字符串的格式不正确。

我尝试将UpdateCommand中的@recid更改为常量UpdateCommand =“ UPDATE IMPORT SET SHIPPER = @ shipper WHERE RECID = 11186”,此方法运行良好,更新成功。

我认为@recid在UpdateCommand中被视为字符串。 有人可以帮帮我吗? 为了将@recid的数据类型更改为Integer,我需要做什么?

谢谢!

您需要解决的第一件事是将raceid与文本框绑定,如下所示:

<asp:TextBox ID="recid" runat="server" Text='<%# Bind("RECID") %>' ReadOnly="true" />

现在有一个关于提供者的问题。 在select命令中,您已使用RACEID = ? ? 用于OleDbOdbc 如果使用其中任何一个,则必须将“更新命令”更改为此:

UpdateCommand="UPDATE IMPORT SET SHIPPER=? WHERE RECID=?"

和UpdateParameters到此(注意其顺序):

<UpdateParameters>
    <asp:Parameter Name="shipper" Type="String" />
    <asp:Parameter Name="recid" Type="Int32" />
</UpdateParameters>

我建议阅读此MSDN文章: 通过SqlDataSource控件使用参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM