2016-02-28 183 views
0

我想從我的SQL Server數據庫加載新聞,但我遇到了問題。ASP.NET - 返回多個結果

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> 

一切完美,我得到的結果就好然而,只得到1個結果從數據庫中,而不是3?正如你可以在查詢看到,我選擇三個頭條新聞,但我只得到一個(查詢工作沒有問題的SQL Server上)

+0

如果你的表只有一條記錄,該怎麼辦 –

+1

看起來你正在通過循環遍歷每個迭代中的'returnednews'。也許你應該把行放入一個包含(如一個數組)或將它們連接在一起。 –

+0

哦,對,我很笨。 它應該是「returnednews + = string.Format(」而不是returnednews = string.Format(... 謝謝:)並對不起,我不知道我是如何錯過 –

回答

4

既然你每次迭代連連分配您的變量returnednews ,您的returnednews只有有最後一行的值。

我認爲你需要爲你的閱讀器返回的每個值進行一些字符串連接;

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

還可以使用using statement處置您的連接,命令和讀取器會自動改爲手動調用Dispose方法。

+0

是的我知道,idk我怎麼會錯過。固定 –