2010-04-20 3 views
0

내 리피터 항목 템플릿이 있습니다에 매여비정상적인 변환 오류 (정수로 문자열) asp.net

<asp:Repeater ID="Linksrepeater" runat="server"> 
<HeaderTemplate><h2>Links</h2><ul> 
</HeaderTemplate> 
<ItemTemplate> 
<li><%#Container.DataItem("Category")%></li> 
</ItemTemplate> 
<FooterTemplate> 
</ul> 
</FooterTemplate> 
</asp:Repeater> 

: 나는 코드를 실행하면

s = "sql" 
     x = New SqlCommand(s, c) 
     x.Parameters.Add("@contentid", SqlDbType.Int) 
     x.Parameters("@contentid").Value = contentid 
     c.Open() 
     r = x.ExecuteReader 
     If r.HasRows Then 
      Linksrepeater.DataSource = r 
      Linksrepeater.DataBind() 
     End If 

     c.Close() 
     r.Close() 

내가 얻을 :

유효하지 않은 캐스트 예외가 사용자 코드에 의해 처리되지 않았습니다. 문자열 "category"에서 '정수'유형으로의 변환이 유효하지 않습니다.

db에서와 같이 Category을 (를) 정수로 변환하는 방법/이유가 확실하지 않습니다. 문자열입니다.

이 오류를 방지하는 방법을 알려주십시오. 감사.

편집 : 나는

+0

(클래스 이름을 MyObject 변경) :

<%# Container.DataItem("Category") %> 

대신 사용해보십시오. –

+0

그래, 네가 생각하는 작품은 아마도 작동하지 않는 것일거야, 그래서 네가 여기있는 이유야, 그렇지? ;-) sql과 repeater에 대한 마크 업을 게시하십시오. –

답변

0

<%#Container.DataItem("URL")%> 당신이 코드가 정확한지 확신하려고하면

같은 오류가 발생?

<%# Eval("Category") %> 

또는 SQL 문자열을 포함하여, 여기에 전체 코드 샘플을 필요로가는

<%# (Container.DataItem as MyObject).Category %>