我试图从我的数据库中获取数据并将其放入数组中。
我试过这段代码:
DataClassesDataContext DS = new DataClassesDataContext();
protected void Page_Load(object sender, EventArgs e)
{
List<string> _news = new List<string>();
for (int i = 0; i <= 4; i++)
{
_news.Add(DS.select_top_five_news().ElementAt(i).ToString());
}
}
但它没有返回我想要的东西并给我这个错误:
指定的参数超出了有效值的范围 参数名称:index
这是我使用的存储过程:
CREATE PROCEDURE select_top_five_news
AS
RETURN
SELECT top 5 *
FROM news
ORDER BY newsid DESC
问题是存储过程的结果是作为单个结果返回的,而我需要循环到它来获取每个单独的记录
请帮忙!或者另一种方式是同一个目标吗?
答案 0 :(得分:0)
由于您的程序已经为您过滤了数据,因此您只需执行以下操作即可。您的程序最多会返回5个结果,因此您收到的内容就是您获得的结果。如果您需要默认实体,则必须循环并添加缺失的项目,而不是从结果中提取现有项目。
DataClassesDataContext DS = new DataClassesDataContext();
protected void Page_Load(object sender, EventArgs e)
{
var _news = DS.select_top_five_news().ToList();
}
如果您直接使用实体,则执行此操作。
DataClassesDataContext DS = new DataClassesDataContext();
protected void Page_Load(object sender, EventArgs e)
{
var _news = DS.News.OrderBy(n => n.ID).Take(5).ToList();
}