Sub PtList()
Conn.Open()
Ad = New SqlDataAdapter("SQL语句",Conn)
Ds = New Dataset()
Ad.Fill(Ds,"表")
Dim Dt As DataTable = Ds.Tables("表")
Dim i As Integer = 0
Dim strvale As string
While i < Dt.Rows.Count
IF Dt.Rows(i)("新闻标题").ToString.Length > 4 Then
strvale = Dt.Rows(i)("新闻标题").ToString.Substring(0, 4)
Else
strvale = Dt.Rows(i)("新闻标题").ToString
End If
System.Math.Min(System.Threading.Interlocked.Increment(i),i-1)
End While
Pt.DataSource = strvale
Pt.DataBind()
Conn.Close()
End Sub
注:Conn Ad Ds 都已声明!!!
在页面上需要显示 新闻类别 新闻标题 发布日期
望各位高手 把此段代码优化 并给出C#代码 寒心万分感谢
100分落谁家???
8 个解决方案
#1
你从库中取出的记录.net是不会自己认为是字符串的哦,所以就不可以直接用Dt.Rows(i)("新闻标题").ToString
而要用ctype(Dt.Rows(i)("新闻标题"),string).tostring.length
或者用asp兼容的len(Dt.Rows(i)("新闻标题"))这样都可以得到字符串的长
而要用ctype(Dt.Rows(i)("新闻标题"),string).tostring.length
或者用asp兼容的len(Dt.Rows(i)("新闻标题"))这样都可以得到字符串的长
#2
asp.net中如何截取前面20个字?(DataBinder.Eval(Container.DataItem, "title"))
<%# DataBinder.Eval(Container.DataItem, "title").ToString().Substring(0,20)%>
不过你如果你的字符长度不够20会出错的。
你可以在.cs中写啊,判断一下长度再Substring就行了。
<%# Left(DataBinder.Eval(Container.DataItem, "title"),20)%>
截取中文和英文长度的问题
http://www.cnblogs.com/renyu732/archive/2005/06/20/177833.html
<%# DataBinder.Eval(Container.DataItem, "title").ToString().Substring(0,20)%>
不过你如果你的字符长度不够20会出错的。
你可以在.cs中写啊,判断一下长度再Substring就行了。
<%# Left(DataBinder.Eval(Container.DataItem, "title"),20)%>
截取中文和英文长度的问题
http://www.cnblogs.com/renyu732/archive/2005/06/20/177833.html
#3
始终提示:
未找到类型“Char”的默认成员。
未找到类型“Char”的默认成员。
#4
Dim strvale As string
只有一个字符串,while循环会把前面对 strvale 的赋值覆盖掉。
最后DataBind的结果只可能是最后一条结果。
只有一个字符串,while循环会把前面对 strvale 的赋值覆盖掉。
最后DataBind的结果只可能是最后一条结果。
#5
你可在页面如此绑定:(取前20个字节)
<%# myCutString(Convert.ToString(DataBinder.Eval(Container, "DataItem.ban_sno")),20) %>
=========函数======================
/// <summary>
/// 截取以字节计算的文本长度
/// </summary>
/// <param name="msytr">要截取的文本串</param>
/// <param name="intLength">要截取的字节数</param>
/// <returns>返回截取的字节数</returns>
private string myCutString(string mystr,int intLength)
{
Byte[] myByte = System.Text.Encoding.Default.GetBytes(mystr);
string str = "";
if(myByte.Length < intLength)
{
str = mystr;
}
else
{
str = System.Text.Encoding.Default.GetString(myByte,0,intLength);
switch(System.Text.Encoding.Default.GetByteCount(mystr) - intLength)
{
case 1:
str += "..";
break;
case -1:
str += "...";
break;
default:
break;
}
}
return(str);
}
用这个方法。。抛弃你的那个
<%# myCutString(Convert.ToString(DataBinder.Eval(Container, "DataItem.ban_sno")),20) %>
=========函数======================
/// <summary>
/// 截取以字节计算的文本长度
/// </summary>
/// <param name="msytr">要截取的文本串</param>
/// <param name="intLength">要截取的字节数</param>
/// <returns>返回截取的字节数</returns>
private string myCutString(string mystr,int intLength)
{
Byte[] myByte = System.Text.Encoding.Default.GetBytes(mystr);
string str = "";
if(myByte.Length < intLength)
{
str = mystr;
}
else
{
str = System.Text.Encoding.Default.GetString(myByte,0,intLength);
switch(System.Text.Encoding.Default.GetByteCount(mystr) - intLength)
{
case 1:
str += "..";
break;
case -1:
str += "...";
break;
default:
break;
}
}
return(str);
}
用这个方法。。抛弃你的那个
#6
TO Squalltao(桃子) 高手
你说的对!最后返回只有最后一条记录!
有什么办法解决吗?
你说的对!最后返回只有最后一条记录!
有什么办法解决吗?
#7
TO hackate(兰花开香入梦境,独思佳人亦飘然!!) 高手
你用的是函数! 虽说可以完成类似效果!
但不是我想要的效果!
你用的是函数! 虽说可以完成类似效果!
但不是我想要的效果!
#8
TO viscoo(冠达) 高手
你说ctype(Dt.Rows(i)("新闻标题").string).tostring.length 此法正确
但是如果使用 Dt.Rows(i)("新闻标题").string.tostring.length
也是一样的效果!
你说ctype(Dt.Rows(i)("新闻标题").string).tostring.length 此法正确
但是如果使用 Dt.Rows(i)("新闻标题").string.tostring.length
也是一样的效果!
#1
你从库中取出的记录.net是不会自己认为是字符串的哦,所以就不可以直接用Dt.Rows(i)("新闻标题").ToString
而要用ctype(Dt.Rows(i)("新闻标题"),string).tostring.length
或者用asp兼容的len(Dt.Rows(i)("新闻标题"))这样都可以得到字符串的长
而要用ctype(Dt.Rows(i)("新闻标题"),string).tostring.length
或者用asp兼容的len(Dt.Rows(i)("新闻标题"))这样都可以得到字符串的长
#2
asp.net中如何截取前面20个字?(DataBinder.Eval(Container.DataItem, "title"))
<%# DataBinder.Eval(Container.DataItem, "title").ToString().Substring(0,20)%>
不过你如果你的字符长度不够20会出错的。
你可以在.cs中写啊,判断一下长度再Substring就行了。
<%# Left(DataBinder.Eval(Container.DataItem, "title"),20)%>
截取中文和英文长度的问题
http://www.cnblogs.com/renyu732/archive/2005/06/20/177833.html
<%# DataBinder.Eval(Container.DataItem, "title").ToString().Substring(0,20)%>
不过你如果你的字符长度不够20会出错的。
你可以在.cs中写啊,判断一下长度再Substring就行了。
<%# Left(DataBinder.Eval(Container.DataItem, "title"),20)%>
截取中文和英文长度的问题
http://www.cnblogs.com/renyu732/archive/2005/06/20/177833.html
#3
始终提示:
未找到类型“Char”的默认成员。
未找到类型“Char”的默认成员。
#4
Dim strvale As string
只有一个字符串,while循环会把前面对 strvale 的赋值覆盖掉。
最后DataBind的结果只可能是最后一条结果。
只有一个字符串,while循环会把前面对 strvale 的赋值覆盖掉。
最后DataBind的结果只可能是最后一条结果。
#5
你可在页面如此绑定:(取前20个字节)
<%# myCutString(Convert.ToString(DataBinder.Eval(Container, "DataItem.ban_sno")),20) %>
=========函数======================
/// <summary>
/// 截取以字节计算的文本长度
/// </summary>
/// <param name="msytr">要截取的文本串</param>
/// <param name="intLength">要截取的字节数</param>
/// <returns>返回截取的字节数</returns>
private string myCutString(string mystr,int intLength)
{
Byte[] myByte = System.Text.Encoding.Default.GetBytes(mystr);
string str = "";
if(myByte.Length < intLength)
{
str = mystr;
}
else
{
str = System.Text.Encoding.Default.GetString(myByte,0,intLength);
switch(System.Text.Encoding.Default.GetByteCount(mystr) - intLength)
{
case 1:
str += "..";
break;
case -1:
str += "...";
break;
default:
break;
}
}
return(str);
}
用这个方法。。抛弃你的那个
<%# myCutString(Convert.ToString(DataBinder.Eval(Container, "DataItem.ban_sno")),20) %>
=========函数======================
/// <summary>
/// 截取以字节计算的文本长度
/// </summary>
/// <param name="msytr">要截取的文本串</param>
/// <param name="intLength">要截取的字节数</param>
/// <returns>返回截取的字节数</returns>
private string myCutString(string mystr,int intLength)
{
Byte[] myByte = System.Text.Encoding.Default.GetBytes(mystr);
string str = "";
if(myByte.Length < intLength)
{
str = mystr;
}
else
{
str = System.Text.Encoding.Default.GetString(myByte,0,intLength);
switch(System.Text.Encoding.Default.GetByteCount(mystr) - intLength)
{
case 1:
str += "..";
break;
case -1:
str += "...";
break;
default:
break;
}
}
return(str);
}
用这个方法。。抛弃你的那个
#6
TO Squalltao(桃子) 高手
你说的对!最后返回只有最后一条记录!
有什么办法解决吗?
你说的对!最后返回只有最后一条记录!
有什么办法解决吗?
#7
TO hackate(兰花开香入梦境,独思佳人亦飘然!!) 高手
你用的是函数! 虽说可以完成类似效果!
但不是我想要的效果!
你用的是函数! 虽说可以完成类似效果!
但不是我想要的效果!
#8
TO viscoo(冠达) 高手
你说ctype(Dt.Rows(i)("新闻标题").string).tostring.length 此法正确
但是如果使用 Dt.Rows(i)("新闻标题").string.tostring.length
也是一样的效果!
你说ctype(Dt.Rows(i)("新闻标题").string).tostring.length 此法正确
但是如果使用 Dt.Rows(i)("新闻标题").string.tostring.length
也是一样的效果!