解析字符串:输入字符串格式不正确.#.

本文关键字:字符串 不正确 格式 输入 | 更新日期: 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。