第一种方式
 sal.get_dataset("select top 3 classname,classid from net_class where typeflag=63 and displayflag=1 order by arrangementflag asc", menulist);   //获取dataset并绑定到menulist<asp:Repeater ID="menulist" runat="server"><ItemTemplate>
<%#get_len(DataBinder.Eval(Container.DataItem,"classname").ToString(),5) %>
</ItemTemplate></asp:Repeater>
aspx.cs
 protected string get_len(string flag, int lens)
    {
        return function.len(flag, lens);
    }

第二种
 sal.get_dataset("select top 3 substring(classname,0,15),classid from net_class where typeflag=63 and displayflag=1 order by arrangementflag asc", menulist);  //获取dataset并绑定到menulist<asp:Repeater ID="menulist" runat="server"><ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"classname") %>
</ItemTemplate></asp:Repeater>

请问哪中方式更快些  更常用的是哪种 探讨以下

解决方案 »

  1.   

    我借个地方问个其他的:
    select top X和select .... from (select ROW_NUMBER() OVER(ORDER BY ...)哪个快啊?
      

  2.   

    我肯定选择方法1SQL语句只应该负责数据的查询,和数据的显示是没有关系的而且也不灵活,万一我想修改显示的字符数,做为一个开发人员可以修改我的代码,但我未必有权利去修改SQL语句的代码
      

  3.   

    其实最快的是不截取,在它外面套一下Div,设置css样式为overflow:hidden;
      

  4.   

    哈哈,测试一下不就知道了。
    貌似第一个快些,SubString要将数据缓存
      

  5.   

      我觉得第一种方式是正确的,这不是哪个快的问题,偶觉得就应该按照第一种方式写,毕竟数据库不是做字符串计算的东东,它的算法不是用来做这个的,像字符串计算这样的工作应该交给.Net来做,因为.Net已经对字符串做了很多你看不到的优化。
      

  6.   

    最好用第一种,万一你要以后添加别的功能呢?比如用TITLE显示完整的标题,第二种就傻眼了吧!