我正在尝试从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>
一切正常,我得到的结果很好,但是它从数据库中只得到1个结果,而不是3个?正如您在查询中看到的那样,我选择了三个TOP新闻,但我只得到了一个(查询在SQL Server上有效,没有问题)
由于您returnednews
一次又一次地将变量分配给每个迭代,因此您returnednews
将只有最后一行的值。
我认为您需要对读者返回的每个值进行一些字符串连接;例如:
returnednews += string.Format("<div class='article'>...
也可以使用using
语句自动配置您的连接,命令和读取器,而不是Dispose
手动调用方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句