异常转换错误(字符串到整数)asp.net

发布于 2024-08-29 11:27:41 字数 1050 浏览 2 评论 0原文

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

<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()

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

用户代码未处理无效的强制转换异常(从 键入“Integer”的字符串“category”无效。)

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

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

编辑:

如果我尝试 <%#Container.DataItem("URL")%> ,则会发生相同的错误

I have my repeater item template:

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

Hooked up to:

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()

When I run the code I get:

Invalid Cast Exception was not handled by user code (Conversion from
string "category" to type 'Integer' is not valid.)

I'm not sure how / why it is trying to convert Category to integer as in the db it is a string.

Can you please tell me how to avoid this error? thanks.

EDIT:

The same error occurs if I try <%#Container.DataItem("URL")%>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

韬韬不绝 2024-09-05 11:27:41

你确定这个片段是正确的吗?

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

试试这个:

<%# Eval("Category") %>

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

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

Are you sure this snippet is correct?

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

Try this instead:

<%# Eval("Category") %>

or (changing MyObject to your class name)

<%# (Container.DataItem as MyObject).Category %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文