【问题标题】:Unusual conversion error (string to integer) asp.net异常的转换错误(字符串到整数)asp.net
【发布时间】:2010-04-20 06:51:22
【问题描述】:

我有我的中继器项目模板:

<asp:Repeater ID="Linksrepeater" runat="server">
<HeaderTemplate><h2>Links</h2><ul>
</HeaderTemplate>
<ItemTemplate>
<li><%#Container.DataItem("Category")%></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>

连接到:

s = "sql"
        x = New SqlCommand(s, c)
        x.Parameters.Add("@contentid", SqlDbType.Int)
        x.Parameters("@contentid").Value = contentid
        c.Open()
        r = x.ExecuteReader
        If r.HasRows Then
            Linksrepeater.DataSource = r
            Linksrepeater.DataBind()
        End If

        c.Close()
        r.Close()

当我运行代码时,我得到:

用户代码未处理无效的强制转换异常(从 输入“整数”的字符串“类别”无效。)

我不确定它如何/为什么尝试将 Category 转换为整数,因为在数据库中它是一个字符串。

你能告诉我如何避免这个错误吗?谢谢。

编辑:

如果我尝试&lt;%#Container.DataItem("URL")%&gt;,也会出现同样的错误

【问题讨论】:

  • 这里需要完整的代码示例,包括 SQL 字符串。
  • 是的,你认为有效的可能是无效的,这就是你在这里的原因,对吧? ;-) 发布转发器的 sql 和标记。

标签: asp.net string types integer


【解决方案1】:

你确定这个 sn-p 是正确的吗?

<%# Container.DataItem("Category") %>

试试这个:

<%# Eval("Category") %>

或(将 MyObject 更改为您的类名)

<%# (Container.DataItem as MyObject).Category %>

【讨论】:

    猜你喜欢
    • 2016-06-08
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2016-07-28
    • 2015-12-31
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多