I'm currently working on a Windows application to be used to migrate data from a legacy system into a SharePoint list.

To do this I am accessing the Client Object Model and using it to create new list items and update the relevant field values.

The issue I am having is that some of the field values update and some do not. It appears as though some of the Choice fields are not retaining the passed values...even the Title field is not retaining the value. Investigation has revealed that the Choice fields with issues are a combination of radio buttons and multiple value choices.

The code I am using is below. Can anyone shed some light on why these issues are occurring?



                strDtls = Split(strData, "~^")
                Dim inf As New ListItemCreationInformation()
                Dim itmProfile As ListItem = lstProfile.AddItem(inf)
                strID = itmProfile.ID.ToString
                itmProfile.Item("Title") = strDtls(0)
                itmProfile.Item("Category") = strDtls(1)
                itmProfile.Item("Jurisdiction") = "Federal"
                itmProfile.Item("Other_x0020_Jurisdiction") = strDtls(3)
                itmProfile.Item("Practice_x0020_Group") = "Banking & Finance"
                dteTmp = Date.ParseExact(strDtls(5),"dd/MM/yyyy",System.Globalization.CultureInfo.InvariantCulture)
                itmProfile.Item("Last_x0020_Reviewed_x0020_Date") = dteTmp
                itmProfile.Item("Format") = "Tab through"
                itmProfile.Item("Format_x0020_specification") = strDtls(7)
                If strDtls(8) = "" then
                    usrTmp = oWeb.EnsureUser("ORG\55276")
                    usrTmp = oWeb.EnsureUser("ORG\44778")
                End If
                usrVal1 = New FieldUserValue()
                usrVal1.LookupId = usrTmp.Id
                itmProfile.Item("Author0") = usrVal1
                If strDtls(9) = "" then
                    usrTmp2 = oWeb.EnsureUser("ORG\55276")
                    usrTmp2 = oWeb.EnsureUser("ORG\" + strDtls(9))
                End If
                usrVal2 = New FieldUserValue()
                usrVal2.LookupId = usrTmp2.Id
                itmProfile.Item("Partner_x0020_Responsible") = usrVal2
                itmProfile.Item("NewColumn1") = strDtls(10)
                itmProfile.Item("Engagement_x0020_type") = strDtls(11)
                itmProfile.Item("NewColumn10") = strDtls(12)
                itmProfile.Item("Audit_x0020_frequency") = strDtls(13)
                itmProfile.Item("Royalty") = strDtls(14)
                itmProfile.Item("Audit_x0020_frequency_x0020_appr") = strDtls(15)
                dteTmp = Date.ParseExact(strDtls(16),"dd/MM/yyyy",System.Globalization.CultureInfo.InvariantCulture)
                itmProfile.Item("Next_x0020_review_x0020_due") = dteTmp
                itmProfile.Item("Archive") = strDtls(17)
                itmProfile.Item("Drafted_x0020_by") = strDtls(18)
                itmProfile.Item("Partner_x0020_signoff") = strDtls(19)
                itmProfile.Item("Style_x0020_guide_x0020_complian") = strDtls(20)
                itmProfile.Item("Client") = strDtls(21)
                itmProfile.Item("Form_x0020_Details") = strDtls(22)
                itmProfile.Item("Description") = strDtls(24)
                itmProfile.Item("Reference") = strDtls(25)

1 Answer 1


I ended up getting around this by working out how to use the server object model when running the application on the SP server itself.

It involved accessing the server using SPFarm.Local, SPFarm.Services, SPWebApplication and then accessing the site.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.