none
怎样从数据库读取数据的前几个字符 RRS feed

  • 问题

  • 才刚刚开始学习asp.net,正在看别人的代码。代码如下:<%# Eval("content").Tostring().Substring(0, Eval("content").Tostring().Length > 30 ? 30 : Eval("content").Tostring().Length) %>,知道大致意思,但在visual web developer中调试是出现“不能出现?”的错误。希望高手帮我解答一下。同时如果能详细讲解一下这段代码的意思不胜感谢。我也查过许多资料,但都是零散的知识。所以求助于各位了。最后谢谢你们。

    2011年8月9日 17:27

答案

全部回复

  • 如果content的长度大于30,截取content前30个字符

    如果content的长度小于30,使用content的全部字符,

    你把你的代码贴出来,


    http://blog.csdn.net/zx13525079024
    2011年8月10日 1:51
  • 我知道是这个意思。这段代码是写在用C#创建的.aspx页面里的。我想用在由VB创建的.aspx页面,该怎样弄呢?
    2011年8月10日 2:41
  • 我知道是这个意思。这段代码是写在用C#创建的.aspx页面里的。我想用在由VB创建的.aspx页面,该怎样弄呢?


    .aspx頁VB.net写法一样

     


    Shadowと愉快なコード達
    2011年8月10日 7:36
  • VB中绑定也用Eval函数

    参照

    http://www.cnblogs.com/insus/articles/1997458.html


    http://blog.csdn.net/zx13525079024
    2011年8月10日 10:11
  • vb可以时候IIF函数,也可以在vb代码中处理

     

    <%# GetData(Eval("content").Tostring()) %>

    vb代码里面

     

    Public Function GetData(s As String) As String

    If s.Length>30 THen

    return s.Substring(0,30)

    Else

    Return s

     

    ENd Function


    【孟子E章】

    • 已建议为答案 算神 2011年8月11日 7:01
    2011年8月11日 0:43
    版主
  • 才刚刚开始学习asp.net,正在看别人的代码。代码如下:<%# Eval("content").Tostring().Substring(0, Eval("content").Tostring().Length > 30 ? 30 : Eval("content").Tostring().Length) %>,知道大致意思,但在visual web developer中调试是出现“不能出现?”的错误。希望高手帮我解答一下。同时如果能详细讲解一下这段代码的意思不胜感谢。我也查过许多资料,但都是零散的知识。所以求助于各位了。最后谢谢你们。


    方法一:直接用SQL(字段必须是varchar,nvarchar类型)

    select [字段1],……,

    (CASE WHEN LEN([Content])>30 then SUBSTRING([Content],1,30)
    else  [Content] end) as Contents
    from XXX

    然后进行绑定。

    方法二:

    <%# Eval("content").ToString().Length>30? Eval("content").ToString().SubString(0,30):Eval("content")%>


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处

    2011年8月11日 6:16
  • 您好。我使用了你第二种方法,但是还是提示不能出现“?”,我的代码如下:

     <asp:DataList ID="DataList1" runat="server" DataKeyField="aid"
                             DataSourceID="SqlDataSource1" >
                             <ItemTemplate>
                                
                                 <table class="style12" width="250">
                                    <tr>
                                        <td class="movTitle"><a href="viewarticle.aspx?aid=<%#eval("aid") %>"><%#eval("title").ToString().Length>10?eval("title").Tostring().SubString(0,10):Eval("title")%></a></td>
                                        <td class="movDate"><a href="viewarticle.aspx?aid=<%#eval("aid") %>">[<%#Eval("pushtime")%>]</a></td>
                                    </tr>
                                 </table>
                                
                             </ItemTemplate>
                         </asp:DataList>  

    其中黑体就使用了你的方法,想实现从数据库读取“title”字段前10个字,但是还是不行。不知道是哪出的问题。用的是visual web developer 2008速成版,VB编写。

    2011年8月14日 1:30

  • <%#eval("title").ToString().Length>10?eval("title").Tostring().SubString(0,10):Eval("title")%>

    </a></td>

    VB.net請用

    <%# IIf(eval("title").ToString().Length>10, eval("title").ToString().SubString(0,10), Eval("title")) %>
    

     


    Shadowと愉快なコード達
    • 已标记为答案 MessFangsi 2011年8月14日 3:24
    2011年8月14日 2:42
  • 你好,我用了你的方法,但是还是要提示:索引和长度必须引用该字符串内的位置。参数名:leng。代码如下:

    <asp:DataList ID="DataList2" runat="server" DataKeyField="aid" DataSourceID="SqlDataSource2" >

    <ItemTemplate>

    <table width="250">

         <td class="movTitle">
                   <a href="viewarticle.aspx?aid=<%#eval("aid") %>">
                    <%#IIf(Eval("title").ToString().Length > 18, Eval("title").ToString().Substring(0, 6), Eval("title"))%>
                     </a>

           </td>
                <td class="movDate"><a href="viewarticle.aspx?aid=<%#eval("aid") %>">[<%#Eval("pushtime")%>]</a>

          </td>

    </table> </ItemTemplate> </asp:DataList> 我也查过资料,这里面都应该都是判断过title字段内容的长度了啊。。为什么还要提示length错误呢??

    2011年8月14日 8:15
  • 你好,我用了你的方法,但是还是要提示:索引和长度必须引用该字符串内的位置。参数名:leng。代码如下:

    <asp:DataList ID="DataList2" runat="server" DataKeyField="aid" DataSourceID="SqlDataSource2" >

    <ItemTemplate>

    <table width="250">

         <td class="movTitle">
                   <a href="viewarticle.aspx?aid=<%#eval("aid") %>">
                    <%#IIf(Eval("title").ToString().Length > 18, Eval("title").ToString().Substring(0, 6), Eval("title"))%>
                     </a>

           </td>
                <td class="movDate"><a href="viewarticle.aspx?aid=<%#eval("aid") %>">[<%#Eval("pushtime")%>]</a>

          </td>

    </table> </ItemTemplate> </asp:DataList> 我也查过资料,这里面都应该都是判断过title字段内容的长度了啊。。为什么还要提示length错误呢??

    应该不会有错的。要不请尝试这个吧。

    建议这样做:

     <td class="movTitle">
    <a href="viewarticle.aspx?aid=<%#eval("aid") %>">
    <%#AutoGet(Eval("Title").ToString())%>
    </a>

    在后台:

    protected string AutoGet(string s)

    {

          if(s.Length>18)

          {

                if(s.Length>=6)  {return s.SubString(0,6);}

          }

         return s;

    }


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月14日 9:28
  • 呵呵,已经好了,,,谢谢你了哦。。
    2011年8月17日 7:32
  • 呵呵,已经好了,,,谢谢你了哦。。

    请不要忘记标记我的答案,我的第一个8月11日和Shadow And Happy一样的。另外我还有一个答案被Shadow And Happy推荐为答案的,你尝试了吗?
       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处
    2011年12月23日 7:53