C# - Remove An Item From A Collection (MembershipUserCollection) - Enumeration Operation May Not Execute
Mar 8, 2011
I use asp.net 4, ef 4 in c#.I use System.Web.Security to manage users in my web application.
I have a collection of users in MembershipUserCollection and I need remove some users during a foreach on that collector.
I suppose it is impossible to remove an item from the collector when you are looping.
MembershipUserCollection users = Membership.GetAllUsers();
foreach (MembershipUser x in users)
{
if (!Roles.IsUserInRole(x.UserName, "CMS-AUTHOR"))
{
users.Remove(x.UserName);
}
}
Error: Collection was modified; enumeration operation may not execute.
View 6 Replies
Similar Messages:
Jan 4, 2011
I have GridView and I need HTML ENCODE all values being update using Event handler _RowUpdating.
At the moment I use this script BUT I receive an error:
Collection was modified; enumeration operation may not execute.
[code]....
View 2 Replies
Mar 25, 2011
I'm storing a dataset in an ASP.Net WebApplication-Cache. Every user in this intranet-app uses the same instance. On insert/update/delete-actions the database will be updated and the dataset is modified accordingly.
But rarely I get an exception that indicates that I've missed something. I assume that it must have something to do with thread safety.
Collection was modified; enumeration operation might not execute
In lines where i access a DataTable in the Dataset, for example:
Dim view As New DataView(dsERP.ERP_Charge, filter, sort, _
Data.DataViewRowState.CurrentRows)
It was apparently changed by another thread while the view enumerates the datatable.
What is the best way to make this thread safe?
Edit: as you've mentioned i need to lock the objects on add/edit/delete operations. MSDN* says that a DataSet is thread-safe for multiple users. What does this mean, are the DataTables in the Dataset also thread-safe? And how to lock a single datatable on write-operations and not the whole dataset?
*ADO.NET - Multithreaded Programming ADO.NET is optimized for performance, throughput, and scalability. As a result, the ADO.NET objects do not lock resources and must only be used on a single thread. The one exception is the DataSet, which is thread-safe for multiple readers. However, you need lock the DataSet during writes.
This is the property that returns the dataset:
Public ReadOnly Property dsERP() As ERPModel.dsERP
Get
If Cache("DS_ERP") Is Nothing Then
Cache("DS_ERP") = New ERPModel.dsERP
FillDataSet()
End If
Return DirectCast(Cache("DS_ERP"), ERPModel.dsERP)
End Get
End Property
i've modified the insert/update and delete operations in the following way(dsRma is a dataset):
Dim success As Boolean
SyncLock dsRMA.RMA
success = insert()
End SyncLock
First, does it work now if another thread tries to enumerate the RMA-Table? Second, is it sufficient to lock the datarow that gets updated instead of locking the whole datatable(see below)?
Dim thisRMA As ERPModel.dsRMA.RMARow = dsRMA.RMA.FindByIdRMA(Me.IdRma)
Dim success As Boolean
SyncLock thisRMA
success = update(thisRMA)
End SyncLock
View 1 Replies
Oct 29, 2010
I created this generic method to Bind Controls on my ascx:
[Code]....
I cannot use a for cycle, it must be generic to load several DropDownList or CheckBoxLists on my web user control.
View 1 Replies
May 13, 2010
I am trying to run following, it is giving me error "Collection was modified; enumeration operation may not execute" how can I resolve
[Code]....
View 10 Replies
Sep 8, 2010
I am busy building a shopping cart with cookies. I have datalist which I populate from the cookies with a delete button next to each cookie
[Code]....
Now the problem is that when I hit the delete / remove button to expire the cookie, what happens when repopulating the datalist is that it shows the original cookie with all it's values as well as a new entry where all the values are blank.
View 3 Replies
Oct 21, 2010
As it stands right now, I have a literal control on my page. In my code-behind, I'm using StringBuilder to generate some JavaScript. Also on that page I have a item collection. What I want to do is for each item in my item collection, generate my literal which will in essence generate my JavaScript. Here is an example of my code-behind now. I'm ok with doing something different, but I just need to generate said JavaScript for every item in the collection and I'm not sure how to do it.
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script type='text/javascript'>");
sb.Append("mboxCreate("product_productpage_rec",");
sb.Append(""entity.id=" + _prodID + "",");
sb.Append(""entity.categoryId=" + _categoryID + "",");
sb.Append(""entity.name=" + _prod.Title + "",");
sb.Append(""entity.pageURL=" + Request.Url.ToString() + "",");
//The following value has been taken from the productImageControl code behind.
//Might have to refactor in future as a property of the image control.
string filename = AppSettingsManager.Current.ProductImagePathLarge + _prod.ActiveProductItemCollection[0].Sku + AppSettingsManager.Current.ProductImageExtension;
sb.Append(""entity.thumbnailURL=" + filename + "",");
sb.Append(""entity.inventory=" + _prod.ActiveProductItemCollection.Count + "",");
sb.Append(""entity.value=" + _prod.ActiveProductItemCollection[0].ActualPrice + "",");
sb.Append(""entity.ProductItemID=" + prodItem.Id + "",");
sb.Append(""entity.addToCartImg=~/Images/Buttons/btn_AddToCartFlat.gif");<");
//The last line has to be /script. < inserted on prev line. do not change it or bad things will happen.
sb.Append("/script>");
//add script to page
this.LiteralMBoxScript.Text = sb.ToString();
View 4 Replies
Sep 20, 2010
I have an asp.net menu in which i have to let some nodes visible or invisible base on some logic.I know i can find value by item but i wnated to FindItemByValue of my asp.net menu.Could it be possible?
View 3 Replies
Mar 29, 2011
I would like to cache a collection in the viewstate, but I wonder if there is a better way to add an item to this collection!
private List<MyClass> CachedItems
{
get { return (List<MyClass>)ViewState["CachedItems"]; }
set { ViewState["CachedItems"] = value; }
}
private void AddToCachedItems(MyClass item)
{
CachedItems = CachedItems.Concat(new[] { item }).ToList();
}
View 1 Replies
Apr 27, 2010
I have a collection of Contacts that inherits from CollectionBase:
public class ContactCollection : CollectionBase{
//...
}
each contact in the collection has a unique ID:
public class Contact{
public int ContactID{
get;
private set;
}
//...
}
I think what I would like to do is something like the following:
// get the contact by their unique [Contact]ID
Contact myPerson = Contact.GetContactById(15);
// get all contacts for the customer
ContactCollection contacts = customer.GetContacts();
// replaces the contact in the collection with the
// myPerson contact with the same ContactID.
contacts.ReplaceAt(myPerson);
// saves the changes to the contacts and the customer
// customer.Save();
View 3 Replies
Oct 22, 2010
getting an the index of a collection. Here is the code I'm using.
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 1; i < _prod.ActiveProductItemCollection.Count; i++)
{
sb.Append("<script type='text/javascript'>");[code]....
What I want to do is get the index of the item in the collection after productpage_rec.
So for instance, the first product would generate like
mboxCreate("product_productpage_rec1"
and so on and so forth for each product in the collection. When I try to build I get the follwong error:
"cannot convert from string to char"
Its tripping up on the product_productpage_rec{0}
View 3 Replies
Jan 9, 2011
There are quite a few questions around this topic,but I can't seem to get it figured out.I'm trying to bind a listbox to an ObservableCollection and keep the listbox updated when items are added to the collection.
[code]...
Beyond this, I have a simple textbox and button on a page.When a name is entered into the textbox,and the button is clickedI call the addBlog(passing in name from textbox) sub routine in the ITRSBlogs Class (back up the page a bit) to add the item to the collection.Problem is,when I add an item to the collection,the listbox is not updated.I'm new to Observable Collections (and many other things : ),so maybe I'm just really off here.
View 1 Replies
Jan 29, 2010
I have never done jquery and need some assistance/advice on something I am trying to do.I basically have an ASP.NET MVC Application.
What I want to do is, asynchronously be able to do a partial postback when a button is pressed.It's a simple application that should add items and retrieve existing items from an IEnumberable<T> collection.
so, when a button is pressed, it should be able to add the item into the collection on the ASP.NET site without having to do a full postback.
View 8 Replies
Mar 25, 2010
how we can access the Remove button event of the Collection Editor dialogue box?
View 3 Replies
Jul 7, 2010
I have a list item collection. How to add this list item collection to a datatable.
The list item collection has the following fields:
Student Name, Maths Mark
John 20
Mac 30
John 35
I want to create a html table from the data table, which is grouped on the Student Name field.
View 2 Replies
Feb 28, 2010
I have a string [] collection, is there any standard function to find string item inside the collection?
View 3 Replies
Mar 7, 2010
in my case, It is the windows service which in running the long running insert/update on a table and I need to cancel the operation from my ASP.NET application. In the above link Burnsys suggests that one should kill the Sql server session. Is that really only way and a goood practice to do this? Also, in the same poset can use SqlCommand.Cancel to cancel. However, I am not sure how can I cancel the command from the windows service from ASP.NET application.
View 1 Replies
Jan 3, 2010
I have been using Grid View sorting with images already but this case is slightly different.
I was going through the tutorial here [URL] pages there is a grid and i tried to implement sorting with images to this grid but i failed.
Here is my c# code
[Code]....
aspx page
[Code]....
The problem here is the datasource of Gridview is of type System.Web.Security.MembershipUserCollection
I am not sure how to convert or assign System.Web.Security.MembershipUserCollection datasource to a dataset or datatable/DataView and sort it.
View 4 Replies
Nov 17, 2010
I know the employee's ID and would like to remove it from my List<Employee> listOfEmployees.
The listOfEmployees.Remove seems to require index of the item to be removed.
View 5 Replies
Mar 7, 2011
I have a dropdownlist, and in some cases need to remove an item (in the code-behind). I need to remove the item based on the value of the item.
View 3 Replies
Dec 7, 2010
I have a class name Holder. I create a List of Holder, then add Holder to it.
holder = new Holder();
holder.Id = id;
holder.Distance = distance;
holderList.Add(holder);
its cool at this point. But now i want to delete a holder from holderList and I do following in another method.
holder = new Holder();
holder.Id=id;
if(holderList.Count > 0)
holderList.Remove(holder); //Error here it does not remove that spacific item.
View 1 Replies
Jan 22, 2010
I have 2 cascading dropdown lists (ListA and ListB).
The selected value from List A is used to determine ListB.
I am wondering if there is a way to dynamically remove items from ListB after ListA value is selected. There are entries in ListB that should not be available unless the user has certain security permissions.
View 1 Replies
Feb 11, 2011
I have I gridview in which the data source is a List<T>. When I try to remove an item from the gridview in my buttonRemove_Click() function another function which handles the RowDeleting event is invoked where I remove the item from the List<T> as well. The problem is that if I select to remove multiple items from the gridview the index of the gridview and that of my List<T> un-syncs. For example I have 10 items in my gridview and in my List and I try to remove the last two items. Here is how I do it in my buttonRemove_Click function
foreach (GridViewRow row in gridViewItems.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("checkBox");
if (cb != null && cb.Checked)
{
gridViewItems.DeleteRow(row.DataItemIndex);
}
}
Then in the RowDeleting function, I'll first receive the event for the index 8, I removed it. Now when it comes to deleting the last item (index 9), then it'll throw exception because the index is out of range. How do I solve this problem? I think the problem will be solved if I try removing the rows in reverse order i.e. starting from the highest index. Can anyone tell how can this be done?
View 1 Replies
Aug 11, 2010
I have created my menu items using web.sitemap, asp:sitemapdatasource control and asp:menu control. I'd like to programmatically remove some of the parent menu's based on certain conditions (I'm guessing it will be under the MenuItemDataBound event).
I know how to remove child menu items, not sure how parent menu items can be removed.
View 3 Replies
Nov 29, 2010
i have a place order form and i have a drop down list that contains list of items whenever i add item (for example item1) to place order and click add another item button, i need to remove (item1 ) from drop down list to avoid dupplicate insert in sql table or mayb need to fill the drop down but without (item1) cause i already selected it i am using sql datasource to fill the drop down list of items.
View 13 Replies