【发布时间】:2014-06-18 00:05:30
【问题描述】:
这是我的表单视图..
<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" />
<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 的数据类型更改为整数?
谢谢!
【问题讨论】:
-
数据库中RECID的数据类型是什么?
-
嗨! RECID是整数,在数据库中自增,是主键。