解析字符串:输入字符串格式不正确.#.
本文关键字:字符串 不正确 格式 输入 | 更新日期: 2023-09-27 18:33:25
我正在尝试运行一个需要 int 才能正常工作的存储过程。我从数据网格中提取一个"ID",然后尝试解析 int 以允许该过程运行,但收到标题中提到的错误。关于更好的方法有什么想法吗?
<asp:BoundColumn DataField="ID" Visible="true"></asp:BoundColumn>
<asp:Button ID="btnMarkComplete" Text="Mark Complete" runat="server" CommandArgument='<$# Eval("ID") %>' OnClick="BtnMarkCompleteClick"/>
</ItemTemplate>
int iD = Convert.ToInt32(d.CommandArgument.ToString());
回答你的问题,"有没有更好的方法可以做到这一点"?
是的,它被称为TryParse
:
int iD = 0;
if(Int32.TryParse(d.CommandArgument.ToString(), out iD))
{
// Do something with iD
}
解释
你暗示(使用基本的Convert
方法)输入可以转换为Int32
,这就是为什么当它不能时你会得到一个异常。按照我上面建议的方式,你只是在尝试解析它。 TryParse
返回一个boolean
然后可以对其进行评估以决定执行路径。
有一个错别字可以开始:
<$# Eval("ID") %>
应该是
<%# Eval("ID") %>
因此,您正在尝试将字符串值<$# Eval("ID") %>
转换为整数,该整数将失败并抛出您收到的错误。由于拼写错误,该字段不会绑定到 ID。