^(a|b)@(foo|bar|baz)$
, если Вы имеете, это сильно определило список. Запуск и конечный символ будут только искать те три строки.
Если вы пытаетесь изменить значения для только что вставленного элемента списка, вы должны использовать:
SPList list = web.Lists["ListName"];
//SPListItem item = list.Items.Add();
//item["PercentComplete"] = .45; // 45%
//item.Update();
SPListItemCollection items = list.GetItems(new SPQuery()
{
Query = @"<Where>
<Eq>
<FieldRef Name='Title' />
<Value Type='Text'>Desigining</Value>
</Eq>
</Where>"
});
foreach (SPListItem item in items)
{
item["PercentComplete"] = .45; // 45%
item.Update();
}
Вам просто нужно использовать list.Items [uniqueId]
или быстрее list.GetItemByUniqueId (uniqueId)
, если вам нужно найти конкретный элемент для обновления; чего можно достичь с помощью класса SPQuery
.
Ответ Рубена был правильным, но было несколько ошибок (возможно, это было только для меня), поэтому я немного поправил, и тогда он работал нормально. Ниже приведен код, который я использовал, если он кому-то нужен
SPList list = web.Lists["ListName"];
//SPListItem item = list.Items.Add();
//item["PercentComplete"] = .45;
// 45%//item.Update();
SPQuery oQuery = new SPQuery();
oQuery.Query = @"<Where>
<Eq>
<FieldRef Name='Title' />
<Value Type='Text'>Design</Value>
</Eq>
</Where>";
SPListItemCollection collListItems = list.GetItems(oQuery);
foreach (SPListItem item in collListItems)
{ item["PercentComplete"] = .55;
item.Update();}
Попробуйте вызвать Update () в списке, прежде чем получить UniqueID
SPList list = web.Lists["ListName"]; // 2
SPListItem item = list.Items.Add();
item["Title"] = "Test";
item.Update ();
list.Update ();
Guid itemId = item.UniqueId;
My best quess is that your item is not yet created in the list when you do:
Guid itemId = item.UniqueId;
SPListItem itemUpdate = web.Lists["ListName"].Items[itemId];
First do a item.Update() before requesting the uniqueId and/or getting the item back from a list.
PS : I see no reason why you should get a second SPItem object for updating the 'PercentComplete' information.