Specified key was not present in the dictionary


Author
Message
Andria Jensen
Andria Jensen
Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)
Group: Forum Members
Posts: 336, Visits: 497
I have a DevExpress grid which I have bound to a BusinessBindingSource pointing to a Business Object.  The grid is editable, and has a couple of dropdowns in it.  When I try to select from the drop downs or enter into the other fields I am getting the error message:

Unexpected Error in MicroFour StrataFrame Base
The specified key was not present in the dictionary.

What does this error really mean in this case?  I'm just not sure where to start looking for the problem to debug it.

Attachments
SpecifiedKeyError.bmp (169 views, 2.00 MB)
Replies
Andria Jensen
Andria Jensen
Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)Advanced StrataFrame User (600 reputation)
Group: Forum Members
Posts: 336, Visits: 497
The stack trace is as follows:

8/23/2007 3:33:47 PM
Source: MicroFour StrataFrame Base
Message: The specified key was not present in the dictionary.
Stack:    at MicroFour.StrataFrame.Data.DataBasics.GetFieldFromDictionaryOrdinalKey[T](Dictionary`2 dict, String key)
   at MicroFour.StrataFrame.Data.DataBasics.InitializeNewRow(DataRow NewDataRow, StringCollection IgnoredFields, Dictionary`2 FieldNativeTypes)
   at MicroFour.StrataFrame.Business.BusinessLayer.NewRow()
   at MicroFour.StrataFrame.Business.BusinessLayer.Add(Boolean CheckSecurity)
   at MicroFour.StrataFrame.Business.BusinessBindingSource.IBindingListView_AddNew()
   at System.Windows.Forms.CurrencyManager.AddNew()
   at DevExpress.Data.CurrencyDataController.AddNewRow()
   at DevExpress.XtraGrid.Views.Grid.GridView.OnActiveEditor_ValueModified(Object sender, EventArgs e)
   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseModified(EventArgs e)
   at DevExpress.XtraEditors.BaseEdit.RaiseModified()
   at DevExpress.XtraEditors.BaseEdit.set_IsModified(Boolean value)
   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)
   at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)
   at DevExpress.XtraEditors.ComboBoxEdit.set_EditValue(Object value)
   at DevExpress.XtraEditors.PopupBaseEdit.AcceptPopupValue(Object val)
   at DevExpress.XtraEditors.PopupBaseEdit.DoClosePopup(PopupCloseMode closeMode)
   at DevExpress.XtraEditors.PopupBaseEdit.ClosePopup(PopupCloseMode closeMode)
   at DevExpress.XtraEditors.PopupBaseEdit.ClosePopup()
   at DevExpress.XtraEditors.Popup.PopupListBox.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at DevExpress.Utils.Controls.ControlBase.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativewindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativewindow.WndProc(Message& m)
   at System.Windows.Forms.Nativewindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

StrataFrame Team
S
StrataFrame Developer (6.5K reputation)StrataFrame Developer (6.5K reputation)StrataFrame Developer (6.5K reputation)StrataFrame Developer (6.5K reputation)StrataFrame Developer (6.5K reputation)StrataFrame Developer (6.5K reputation)StrataFrame Developer (6.5K reputation)StrataFrame Developer (6.5K reputation)StrataFrame Developer (6.5K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
Hrm, in this case, it means that the business object it trying to add a new row and initialize the fields in that row, however, the shared collections in the business object containing information on the fields and how to initilize them does not match the columns that are in the table.  Looking at the source code, it might be that you have an extra column in the business object that is not part of the actual table.  And it looks like it will most likely be a DateTime column because that GetFieldFromDictionaryOrdinalKey method is only called when the column's type is DateTime.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search