On my current project we had a requirement where based on the user browsing the SP Site, I needed to set the value of a MultiChoice Field to yes/no.
At first, I had difficult time figuring out why my code was not updating the value of my field. Here is what works! Specifically, the SystemUpdate(false) is what did it.
//always set the locked value to YES.
properties.AfterProperties["Locked_x0020_and_x0020_ready_x00"] = "Yes";
try
{
DisableEventFiring();
properties.ListItem.SystemUpdate(false);
EnableEventFiring();
}
catch (SPException ex) {}
Hope this helps you,
O