显示DataList中数据库字段的前N个字

时间:2013-11-08 16:44:29

标签: c# asp.net linq datalist

我需要从数据库中获取前n个单词并在DataList中显示它们。我正在使用LINQ to SQL。 我已经搜索了很多,但找不到这样做的方法,我正在尝试制作一个包含300个字符的文章列表和一个阅读更多链接,我将能够处理阅读更多按钮并显示文章页面但我坚持在文章列表中显示有限的单词。我正在使用DataList,因为我想简单地显示其他字段 它

我可以创建我的表列的数组,我有多行:

var arc = (from a in data.Articles select a).Count();
var ar = (from a in data.Articles select a.ArticleText).ToArray();
var article = ar; 

这就是我从字符串中提取5个单词的方法:

string firstWords = Regex.Match(testString, @"^(\w+\b.*?){5}").ToString();

我不能让这些东西一起工作

是否可以对数组使用eval表达式?

更新:我在写了gridview而不是datalist的问题时犯了一个拼写错误。

update2:我可以通过放置<%#Container.DataItem%>来创建有限单词数组并将其绑定到datalist。在datalist但我不能使用像linqdatasource这样的其他数据源来使用eval显示其他数据字段,因为我使用了datalist1.DataSource = ar。

代码:

string[] limitedarticle;
limitedarticle = new string[arc];

for (int i = 0; i < arc; i++)
 {

   limitedarticle[i] = Regex.Match(article[i], @"^(\w+\b.*?){5}").ToString();


 }
datalist1.DataSource = ar ;
datalist1.DataBind();

我感谢任何指导和帮助

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容获取n行:

var arc = (from a in data.Articles select a).Take(5);

那会给你5行。然后,您可以实际获取该结果并将其数据绑定到GridView

要限制来自ArticleText的字数,请执行以下操作:

var ar = (from a in data.Articles select a.ArticleText.Take(50));