ASP.net 后台中有关SQL查询出来结果取值问题
ASP.net后台中有关SQL查询出来结果取值问题。比如我在后台中已经取得了dr["title"]的值。可是我只想取dr["title"]字段中值的前16个字符。lb.T...
ASP.net 后台中有关SQL查询出来结果取值问题。比如我在后台中已经取得了 dr["title"]的值。可是我只想取 dr["title"]字段中值的前16个字符。 lb.Text = "</span><li><a href='index2.html'>" + dr["title"] + "</a></li>";上面这句要怎么修改呢?怎么才能只去 dr["title"] 的前16个字符也就是8个汉字的标题,多余的汉字用省略号显示。
展开
2个回答
展开全部
问题理解:
从数据库获取信息的标题,然后通过截取字符串方法只获取指定个数的汉字。
解决方案:
像截取指定的字符串功能,在C#语言里面有一个Substring函数,用来返回指定长度的子字符串。
使用自定义截取字符串方法(附相关方法代码)
详细内容:
1、substring 函数
描述:返回第一个参数到第二个参数指定的位置的子字符串
示例:substring("abcdef",2,3) //返回值为:bcde
2、自定义截取字符串方法
string CutString(string inputString, int strLength)
{
//如果字符串为空,则返回空
if (string.IsNullOrEmpty(inputString))
{
return "";
}
ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen = 0;
string tempString = "";
byte[] s = ascii.GetBytes(inputString);
for (int i = 0; i < s.Length; i++)
{
if ((int)s[i] == 63)
{
tempLen += 2;
}
else
{
tempLen += 1;
}
try
{
tempString += inputString.Substring(i, 1);
}
catch
{
break;
}
if (tempLen > strLength)
break;
}
//原字符串大于截取字符串长度时,增加省略号
byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
if (mybyte.Length > len)
tempString += "…";
return tempString;
}
希望能帮到你!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询