Я добавляю новый список splistitem в список sharepoint, но он всегда дает мне исключение: «ссылка на объект не установлена ​​на экземпляр объекта» - PullRequest
0 голосов
/ 08 апреля 2010
 _site = new SPSite("http:\\MySite");
 _web = site.OpenWeb();

{
   list = _web.Lists[sListName];
   _web.AllowUnsafeUpdates = true;
   items = list.Items;
   item = items.Add();

   item["Title"] = "new Title";
   item["UserName"] = CurrentUser.ToString();
   item["Configuration"] = sConfiguration.ToString();
}

item.Update();
_web.AllowUnsafeUpdates = false;

Ответы [ 3 ]

2 голосов
/ 08 апреля 2010
_web = site.OpenWeb();

Разве это не должно быть _web = _site.OpenWeb();

2 голосов
/ 23 ноября 2010

Попробуйте добавить элемент с помощью SPQuery, например:

   public static SPListItem OptimizedAddItem(SPList list)
   {
       const string EmptyQuery = "0";
       SPQuery q = new SPQuery { Query = EmptyQuery };
       return list.GetItems(q).Add();
   }
1 голос
/ 08 апреля 2010

Вы можете получить ArgumentNullException, если

  • CurrentUser is null
  • sКонфигурация равна нулю

И вы должны написать такой код:

             using (_site = new SPSite("http:\\MySite")) //Disposing correctly to prevent memory leaks
             using (_web = _site.OpenWeb())
             {
                 try {
                   list = _web.Lists[sListName]; //SPException may be thrown if sListName does not exist
                   _web.AllowUnsafeUpdates = true;
                   items = list.Items;
                   item = items.Add(); //Before doing this, check if you have permissions with list.DoesUserHavePermissions to add items to prevent exception here

                   item["Title"] = "new Title";
                   item["UserName"] = CurrentUser.ToString(); //Not sure which, but some exception may be thrown if such field does not exist and ArgumentNullException may be thrown if CurrentUser is null
                   item["Configuration"] = sConfiguration.ToString(); //ArgumentNullException may be thrown
                   item.Update();
                 }
                 finally {
                   _web.AllowUnsafeUpdates = false;
                 }
             }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...