我正在开发我的网络应用程序中的功能。它是一个烹饪社区。功能是在线讨论。用户可以在食谱下面发表评论。我使用了listview控件。我可以使用嵌套查询检索用户名。只能将一个数据集对象分配给ListView控件的DataSource属性。我需要用户名和评论值。用户名正在显示。我在显示该特定用户的评论时遇到问题。但我也需要显示用户的评论。我如何实现 代码隐藏显示评论:
public void dispComments()
{
MySqlConnection con = new MySqlConnection("Server=localhost;Database=FreedomKitchen;Uid=root;Password=;");
con.Open();
MySqlCommand cmd = new MySqlCommand("select Username from User_Details where User_ID in(select User_ID from Recipe_Comments)", con);
MySqlDataAdapter da = new MySqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, "User_Comments");
ListView1.DataSource = ds;
ListView1.DataBind();
con.Close();
}
列表查看源代码:
<ItemTemplate>
<div id="div123">
<asp:Label ID="User"
runat="Server"
Text='<%#Eval("Username") %>'
width="850"
height="80"
/>
<%-- <asp:Label ID="Comment"
runat="Server"
Text='<%#Eval("Comment") %>'
width="850"
height="80"
/>--%>
</div>
</ItemTemplate>
<ItemSeparatorTemplate>
<br />
</ItemSeparatorTemplate>
</asp:ListView>
数据库: User_Details表
User_ID //需要在listview项目中显示它
将First_Name
姓氏
年龄
性别
国家
About_User
名
密码
User_Comments表
Recipe_ID
USER_ID
评论//需要显示这个列表视图项目
答案 0 :(得分:0)
将数据库查询更改为join
注释和用户表,然后选择结果。
取消注释列表视图的项目模板内的部分以显示注释。
将所选结果集绑定到listview
编辑:
您可能需要在DateTime
表中添加User_Comments
列,因为一个用户可能会有多条评论需要在时间顺序上显示。
您可以在dispComments()
方法
MySqlCommand cmd = new MySqlCommand("SELECT U.Username, R.Comment FROM Recipe_Comments R JOIN User_Details U ON R.User_ID = U. User_ID WHERE R.Recipe_ID = @RecipeID ORDER BY R.CommentDate DESC)", con);
cmd.Parameters.Add("@RecipeID", SqlDbType.Int).Value = value;
在ItemTemplate
<ItemTemplate>
<div id="div123">
<asp:Label ID="User" runat="Server" Text='<%#Eval("Username") %>' width="850" height="80" />
<asp:Label ID="Comment" runat="Server" Text='<%#Eval("Comment") %>' width="850" height="80" />
</div>
</ItemTemplate>