Edhy Rijo
|
|
Group: StrataFrame Users
Posts: 2.4K,
Visits: 23K
|
Hi, I am working with a DataGridView in a child form, if I cancel the childform with the follwing code: DialogResult = Windows.Forms.DialogResult.Cancel Then I get the following exception:
KeyNotFoundException
The given key was not present in the dictionary.
Source : mscorlib
Stack Trace:
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at MicroFour.StrataFrame.Business.BusinessLayer.get__CurrentDataTable(Boolean IsSharedTable)
at MicroFour.StrataFrame.Business.BusinessBindingSource.RemoveBOHandlers()
at MicroFour.StrataFrame.Business.BusinessBindingSource.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.ComponentModel.Container.Dispose(Boolean disposing)
at System.ComponentModel.Container.Dispose()
at CardTrackingSystem.frmActivateCardsItems.Dispose(Boolean disposing) in E:\Visual Studio 2008 Projects\StrataFrame\Card Tracking System Projects\CardTrackingSystem.NET\CTS Solution\Card Tracking System\Dialogs\Transaction Forms\Activate Cards\frmActivateCardsItems.Designer.vb:line 10
at System.Windows.Forms.Form.Close()
at MicroFour.StrataFrame.UI.Windows.Forms.ChildFormDialog.ShowDialog(Object[] Arguments)
at MicroFour.StrataFrame.UI.Windows.Forms.ChildFormDialog.ShowDialog()
at CardTrackingSystem.frmActivateCards.cmdAddCards_Click(Object sender, EventArgs e) in E:\Visual Studio 2008 Projects\StrataFrame\Card Tracking System Projects\CardTrackingSystem.NET\CTS Solution\Card Tracking System\Dialogs\Transaction Forms\Activate Cards\frmActivateCards.vb:line 800
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.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)
The DataGridView is being populated with a BBS and the error only happens if the grid has some data. I don't know what "Key" it may be looking for? Also I would like to note that the BO assigned to the BBS has come Custom Field Properties which are not used in the DataGridView.
Edhy Rijo
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
I dropped a DataGridView onto the form and disconnected the DevEx grid from the main BBS (I left the two repository BBSs connected). I connected the main BBS to the DataGridView. When closing the form, I got the same error. So, I deleted all of the BBSs. Ran the form, closed it and received no error. Then, I added a new BBS to the form and wired it to the DataGridView. I ran the app, opened the form, saw the data in the grid, then closed the form. No error! I then wired only the main BBS to the DevEx Grid. When closing the window, it generated the same error. So, the combination of the DevEx grid (9.1.5) and the BBS (versions 1.6.6, 1.6.7 and 1.7.0) makes the window fail on closing. The dispose method...inserting my guesswork here...seems to be trying to get rid of objects that may have already been dumped via the DevEx grid disposal process.
Thoughts?
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
I attempted to recreate the error for you in a sample application. The app that I created was a VB app. I am not getting the same error (although, I forgot to fill the BO). Of course, we are not dealing with apples and apples, so I am going to create a C# app, instead. Stand by.
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
The C# app sample is complete. There are no errors in that sample app....so, I am totally vexed and befuddled. What do I do, now?
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
References...how do I cleanup the references? I attached a window shot of the Add References for a project. Two of the references I need in the project are version 1.7.0 but the other two are 1.6.0. Ugh! I assume that is not correct.
I have uninstalled and reinstalled so many times. What is my best path for fixing this issue?
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
Attached are two assemblies and their version tabs. Is the business.dll supposed to have an assembly version of 1.6?
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 7K
|
When you installed SF 1.7.0, it did not clear out all of the 1.6.0 assemblies (which can be caused by several things). Before you get much deeper, manually remove any 1.6.0 references then reload the 1.7.0 build. Make sure that all of your files get updated to the 1.7.0 version otherwise you will have other weirdness. Second, download the SF source code, build it in debug mode, which should also update your GAC references. THEN, get out of VS. Open VS back up and you should have SF DLLs in debug mode which will allow you to debug and break on any exception allowing you to trace and see where the point of failure is, look at a stack trace, etc. I really think that you are dealing with an issue within your code. For example, something is causing the grid to re-evaluate the bound data source which is causing the error. First, before you go crazy, just override the OnFormClosing method of the form, and manually remove the data source form the grid: MyGrid.DataSource = null; If you are using VB.NET then replace the null with Nothing. That should prevent anything from trying to evaluate the BBS on the form close.
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
So I go to uninstall SF and start over (again) and I get this...see attachment.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 7K
|
Where are you getting this? Most likely you are just not getting all of the assemblies updated into the GAC and within the ProgramFiles\Common Files\MicroFour\StrataFrame folders. Make sure you have permissions to update and that nothing is in use when you load the assemblies.
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
Where are you getting this? It popped up when I began the uninstall of StrataFrame. Naturally, the uninstaller closed. I have been able to get it going again. Sorry. I may be a little jumpy at the moment. I will be cleaning all assemblies referencing StrataFrame, then reinstalling. This will take a little while longer.
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
Trent L. Taylor (07/29/2009)
When you installed SF 1.7.0, it did not clear out all of the 1.6.0 assemblies (which can be caused by several things). Before you get much deeper, manually remove any 1.6.0 references then reload the 1.7.0 build. Make sure that all of your files get updated to the 1.7.0 version otherwise you will have other weirdness. Second, download the SF source code, build it in debug mode, which should also update your GAC references. THEN, get out of VS. Open VS back up and you should have SF DLLs in debug mode which will allow you to debug and break on any exception allowing you to trace and see where the point of failure is, look at a stack trace, etc. I really think that you are dealing with an issue within your code. For example, something is causing the grid to re-evaluate the bound data source which is causing the error. First, before you go crazy, just override the OnFormClosing method of the form, and manually remove the data source form the grid: MyGrid.DataSource = null; If you are using VB.NET then replace the null with Nothing. That should prevent anything from trying to evaluate the BBS on the form close. I reinstalled. I rebuilt the inherited UI project with the DevEx version I am using (9.1.5 . . . 9.2 is due out soon). I added the proper SF references to the project from which I removed them. I built and ran the app. When I closed the same window, I still get the error. So, I tried the code you suggested on the OnFormClosing event. The error still occurs. So, I setup the source code for debugging. When I run the app, the error still occurs. I have attached a screen shot of the debugging. The stack trace is the same as I have already posted. Any more ideas?
|
|
|
Bill Cunnien
|
|
Group: Forum Members
Posts: 785,
Visits: 3.6K
|
Btw, if you are interested, the SharedTableKey being passed to Me._Tables is "c67e1094-d653-4038-a662-45fbf647b5ca".
Me._Tables count is 3; however, only two keys are present...one for the InventoryTransactions table and one for the ItemClasses table. The missing one, which is on the form represented by a BO/BBS combo, is the UnitMaster table. Neither of those existing keys match the one being passed. I assume it is for the missing UnitMaster table.
Interesting.
|
|
|