C# 如何限制数据列表中的字数?

C# 如何限制数据列表中的字数?,c#,asp.net,word,datalist,C#,Asp.net,Word,Datalist,我在描述列中有200个单词,但我只想在Datalist的标签中显示100个单词 SqlDataAdapter adp = new SqlDataAdapter("select * from tbitem", ConfigurationManager.ConnectionStrings["cn"].ConnectionString); DataSet ds = new DataSet(); adp.Fill(ds); DataList1.DataSource = ds;

我在描述列中有200个单词,但我只想在Datalist的标签中显示100个单词

SqlDataAdapter adp = new SqlDataAdapter("select * from tbitem", ConfigurationManager.ConnectionStrings["cn"].ConnectionString);
    DataSet ds = new DataSet();
    adp.Fill(ds);
    DataList1.DataSource = ds;
    DataList1.DataBind();
在HTML中

<asp:DataList ID="DataList1" runat="server">           
            <ItemTemplate>
                <b>Name: </b> <%#Eval("itemnam") %><br />
                   <b>Description: </b> 
                <asp:Label ID="Label1" runat="server" Text='<%#Eval("itemdescription") %>'></asp:Label>  <br /><br />
            </ItemTemplate>               
        </asp:DataList>
它背后的代码是什么?

一种方法是

您可以在数据集中的数据表中的行上循环,然后从每行的列中只提取100个拆分的单词,然后从拆分的单词中生成字符串并将其绑定到同一列

代码未经测试,但您可以使用以下内容

DataSet ds = new DataSet();

adp.Fill(ds);

foreach (DataRow row in ds.Tables[0].Rows)
{
    row["itemdescription"] = string.Join(" ", Convert.ToString(row["itemdescription"]).Split(new char[] { ' ' }).Take(100));
}   

ds.Tables[0].AcceptChanges();

DataList1.DataSource = ds;
DataList1.DataBind();

那么,为什么不尝试从sql查询中只获取100个字母呢?通过使用like this=>
从tbitem
中选择子字符串(itemdescription,0,100)作为itemdescription?这将显示100个字符而不是单词。@shoer那么单词是如何相互分离的呢?你能提供示例输入吗?前100个单词仅@Crowcoderys,我是在你展示示例后得到的,但是你的问题可能(并且被)有不同的解释。这并没有显示确切的100个单词。但是只有89个单词。好的,试着在split函数中只保留空格,比如=>
.split(新字符[]{''})
字符串中有多少逗号和点我想它们应该是11,这就是为什么它只显示89个单词的原因。with.Split(新字符[]{''})。谢谢。
DataSet ds = new DataSet();

adp.Fill(ds);

foreach (DataRow row in ds.Tables[0].Rows)
{
    row["itemdescription"] = string.Join(" ", Convert.ToString(row["itemdescription"]).Split(new char[] { ' ' }).Take(100));
}   

ds.Tables[0].AcceptChanges();

DataList1.DataSource = ds;
DataList1.DataBind();