异常转换错误(字符串到整数)asp.net
我有我的中继器项目模板:
<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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你确定这个片段是正确的吗?
试试这个:
或者(将 MyObject 更改为您的类名)
Are you sure this snippet is correct?
Try this instead:
or (changing MyObject to your class name)