我正在尝试将我编写的SQL代码中的列绑定到datalist中的所有超链接。这应该很简单,但我收到了错误
DataBinding:'System.Data.Common.DataRecordInternal'不包含 一个名为'NumberOfComments'的财产。
嗯,我很确定该列存在,但在这种情况下,它是由一个函数创建的,可能与它有关。当我运行SQL代码时,我得到了应该的值。
超链接
<asp:HyperLink ID="lnkComment" runat="server"
NavigateUrl='<%# Eval("ID", "~/Default.aspx?ID={0}") %>'
Text='<%# Eval("NumberOfComments") %>'></asp:HyperLink>
SQLDataSource
<asp:SqlDataSource ID="sdsNews" runat="server"
ConnectionString="<%$ ConnectionStrings:ASPNETDBConnectionString %>" SelectCommand="SELECT News.ID, News.Topic, News.Text, News.PostTime, aspnet_Users.UserName, "NumberOfComments" = dbo.fnNumberOfCommentOnNews(News.ID)
FROM News INNER JOIN
aspnet_Users ON News.UserId = aspnet_Users.UserId
WHERE (News.ID = ISNULL(@ID, News.ID))
ORDER BY News.PostTime DESC ">
<SelectParameters>
<asp:QueryStringParameter DbType="Guid" Name="ID" QueryStringField="ID" DefaultValue="" />
</SelectParameters>
</asp:SqlDataSource>
答案 0 :(得分:0)
为什么围绕NumberOfComments FieldName有“"
”?
尝试将select命令粘贴到SSMS(SQL Server Mgmt studio)中,您肯定会得到错误的语法错误。如果删除那些引用的html代码,您仍然可以引用并绑定到该列。