ASP.NET - 返回多个结果

时间:2016-02-28 12:47:31

标签: c# sql asp.net

我试图从我的SQL Server数据库加载新闻,但我遇到了问题。

Index.aspx.cs:

public static string Load_News()
{
     string returnednews = "";
     SqlConnection connection = new SqlConnection(Functions.ConnectionTag());

     try
     {
        connection.Open();

        using (SqlDataReader reader = new SqlCommand("SELECT TOP 3 * FROM website.dbo.news ORDER BY ui DESC", connection).ExecuteReader())
        {
            while (reader.Read())
            {
                returnednews = string.Format("<div class='article'><div class=\"a_header\"> <div class='title' ><a href = '/articles/article.aspx?id={0}' ><i class='fa fa-feed' ></i>{1}</a></div></div><div class='a_body' ><div class='a_thumb' ><img src = '/img/news_thumb_1.jpg' /><hr>{4}<br/><font style='font -weight: 600; color: #8e44ad;'>{2}</font></div><div class='a_content' ><p>{3}</p></div></div><div class='a_footer'></div></div>", new object[] { reader["ui"], reader["title"], reader["poster"], reader["announcement"], reader["date"] });
            }
        }
        return returnednews;
    }
    catch (Exception exception)
    {
        return exception.ToString();
    }
    finally
    {
        if (connection != null)
        {
            connection.Dispose();
        }
    }
}

Index.aspx:

<%@ Page
Title="Website"
Language="C#"
MasterPageFile="~/wes.master"
AutoEventWireup="true"
CodeFile="index.aspx.cs"
Inherits="index" %>

<%@ MasterType VirtualPath='~/wes.master' %>

 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">


 <div>
 <%=Load_News()%>
 </div>
</asp:Content>

一切都很完美,我得到的结果很好但是,它只从数据库而不是3得到1个结果?正如您在查询中看到的那样,我选择了三个TOP新闻,但我只得到一个(查询适用于SQL Server而没有问题)

1 个答案:

答案 0 :(得分:4)

由于您每次迭代>一次又一次地将变量分配给returnednews ,因此returnednews 具有最后一行值。

我认为你需要对读者返回的每个值进行一些字符串连接;

returnednews += string.Format("<div class='article'>...

也可以使用using statement自动处理您的连接,命令和阅读器,而不是手动调用Dispose方法。