2011-07-08 5 views
0

Nous avons une liste qui donne l'erreur ci-dessus lorsque vous tentez d'ajouter un nouvel enregistrement. Voici la classe dans son intégralité:Sharepoint 2007: La valeur ne se situe pas dans la plage attendue

Partial Class NextExclusionNo 
Inherits System.Web.UI.Page 


Private listName As String = "Exclusions List" 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    Dim curYear As String = Now.Year.ToString 
    curYear = Mid(curYear, 3) 

    Dim curMonth As String = Now.Month.ToString 
    If curMonth.Length < 2 Then 
     curMonth = "0" & curMonth 
    End If 

    Dim curDay As String = Now.Day.ToString 
    If curDay.Length < 2 Then 
     curDay = "0" & curDay 
    End If 

    Dim curObsPrefix As String = "E" & curYear & "-" & curMonth & "-" 

    Try 
     Using site As New spSite("http://localhost/exclusions") 

      Using web As spWeb = site.openweb() 

       Dim list As SPList = web.Lists(listName) 

       Dim query As New spQuery 
       query.query = "<Where><BeginsWith><FieldRef Name='Exclusion_x0020__x0023_' />" & _ 
       "<Value Type='Text'>" & curObsPrefix & "</Value>" & _ 
       "</BeginsWith></Where><OrderBy><FieldRef Name='Exclusion_x0020__x0023_' Ascending='False' /></OrderBy>" 


       Dim listItems As spListItemCollection = list.getItems(query) 

       Dim newReportNo As Integer = 1 

       If listItems IsNot Nothing AndAlso listItems.count > 0 Then 
        Dim lastReportNo = listItems.item(0).item("Exclusion_x0020__x0023_") 
        Dim licBits() As String = lastReportNo.split("-") 
        Dim lastNo As Integer = CInt(licBits(2)) 
        newReportNo = lastNo + 1 
       End If 

       Response.Write(getFullReportNo(newReportNo, curObsPrefix)) 

      End Using 

     End Using 

    Catch ex As Exception 
     Response.Write("Error:" & ex.Message) 
    End Try 

End Sub 

Private Function getFullReportNo(ByRef licNo As Integer, ByRef prefix As String) As String 

    Dim lic As String = licNo.ToString 
    While lic.Length < 3 
     lic = "0" & lic 
    End While 

    Return prefix & lic 

End Function 



End Class 

Ce qui précède est imbriqué dans un bloc Try/Catch. Quelqu'un peut-il m'aider à diagnostiquer et remédier au bloc de code ci-dessus? Votre aide est tres apprecie.

+0

Pouvez-vous ajouter la trace de la pile? –

Répondre

0

Selon mon analyse, seul le nom de colonne que vous avez spécifié peut donner cette erreur. Validez le nom de votre colonne et partagez-moi vos résultats.

+0

Aussi getFullReportNo pourrait jeter cette exception car nous ne savons pas ce qui est à l'intérieur. Mais stacktrace le révélerait. –

Questions connexes