The given key was not present in the dictionary


Author
Message
Trent Taylor
Trent Taylor
StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
I have made a change to the extensibility DLL that should resolve your problem.  The instructions on implementing the changes are below.  As a side note, one thing I noticed that wasn't right within your application was your use of the SetConnections() method.  This is really something that should never be called outside of the SetDataSources method in the AppMain.vb file.  You connections should already be established before you starting showing and loading forms....at least in most cases.  Smile

  1. Close down Visual Studio
  2. Drag the DLL into the c:\windows\assembly folder (GAC)
  3. Copy the DLL and XML file to c:\program files\common files\microfour\strataframe
  4. Re-open Visual Studio and you should be good to go!

Attachments
Extensibility.zip (110 views, 252.00 KB)
StarkMike
StarkMike
StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)
Group: Forum Members
Posts: 436, Visits: 944
Ok I replaced the old extensibility file with the one you provided PLUS i replaced the extensibility file in C:\Program Files\MicroFour\StrataFrame\Assemblies with the one you just gave me.



However now when I open the SearchFields dialog and click on a field and then click edit... the dialog just closes... no error message...just disappears...



I removed the field and then clicked Add... it let me setup the new field but then i clicked ok it didnt add the field to the list...



Trent Taylor
Trent Taylor
StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
I don't think you got it replaced then.  I am pretty confident that the issue has been resolved and the behavior you are getting is indicitive of a version conflict.  I went through this a number of times before I posted the fix.  Are you sure that you updated the GAC?  Try manually deleted the Extensibility DLL in the GAC and the adding it back with the new one.
StarkMike
StarkMike
StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)
Group: Forum Members
Posts: 436, Visits: 944
I tried that two or three times and its still not working... is there something i need to do to manually register the file once i've put it in the GAC? I remember vb6 you used to have to run regsvr32...

What is also interesting is that I didnt have an Extensibility xml file in Common Files\StrataFrame until i added the one you gave me.

I replaced the extensibility dll you just gave me with the original one and the Search Fields Criteria dialog came right up... what am  i doing wrong?

StrataFrame Team
S
StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
Mike, it could be that the extensibility DLL that we gave you is getting a MissingMethodException or something like that.  If some method signature within one of the core DLLs changed, it could be that an exception is being thrown and snuffed by VS (it likes to do that so that 3rd party addins by guys like us don't kill VS Smile)  Let me zip up the rest of the core DLLs and replace all of them and tell me if you can open the browse dialog.
StrataFrame Team
S
StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
Here are the DLLs for you.
Attachments
StrataFrame.zip (95 views, 2.00 MB)
StarkMike
StarkMike
StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)
Group: Forum Members
Posts: 436, Visits: 944
Ok. Great! That fixed those problems.  Everything works in design time again. i deleted the browsedialog and re-created it and STILL got that "given key" problem... Hehe what should I be looking for? My other browse dialogs in my program work... not sure whats going on...
Trent Taylor
Trent Taylor
StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)StrataFrame Developer (8.5K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
The given key problem was the way you had your connection strings setup, at least in the sample you gave me.  That is why I mentioned that your use of the SetConnections() method was not correct.  Just to see if this is your problem, hard code the connection string and do not call the SetConnections method....from the AppMain or anywhere else.

Databasics.DataSources(New SqlDataSourceItem("","server=localhost;integrated security=SSPI;database=MyDatabase;")

StarkMike
StarkMike
StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)StrataFrame User (440 reputation)
Group: Forum Members
Posts: 436, Visits: 944
I tried removing setconnections from AppMain and it still did it.  I looked back and realized that I didnt explain where I was getting this error i just said I was getting it... Allow me to explain where I get it...

When I run my app and bring up a browse dialog... i have a combo box in the search fields criteria that represents locations... when i choose a location from the combo box and then click search is when I get the error...

If i just click search and not choose a location it works fine. I'll include my stack dump just to help out.

The given key was not present in the dictionary.
 
  Exception (KeyNotFoundException): Source="mscorlib"; Target=null; Tag=null;
    Message = "The given key was not present in the dictionary."
 
  Environment:  ThreadIdentity="" DateTime=["2007-04-23 12:44:25.723"] ThreadName=null WindowsIdentity="STRUSS\MMurphy" ThreadId="11" DemoVersion="True" DomainName="STI.vshost.exe" OSVersion=["Microsoft Windows NT 5.1.2600 Service Pack 2"] MachineName="1LPMMURPHY2" UserName="MMurphy"
 
    Remaining Stack Trace
    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    at System.ThrowHelper.ThrowKeyNotFoundException()
    at System.Collections.Generic.Dictionary`2.getItem(TKey key)
    at MicroFour.StrataFrame.UI.Windows.Forms.BrowseDialogwindow.BuildWhereElement(SearchFieldItem SearchField)
    at MicroFour.StrataFrame.UI.Windows.Forms.BrowseDialogwindow.BuildWhereElement(Int32 ParameterIndex)
    at MicroFour.StrataFrame.UI.Windows.Forms.BrowseDialogwindow.BuildSearchWhereClause()
    at MicroFour.StrataFrame.UI.Windows.Forms.BrowseDialogwindow.Search()
    at MicroFour.StrataFrame.UI.Windows.Forms.BrowseDialogwindow.ExecuteSearch()
    at MicroFour.StrataFrame.UI.Windows.Forms.BrowseDialogwindow.tsiSearchClick(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)

Hope this helps.


 

StrataFrame Team
S
StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)StrataFrame Developer (3.5K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
It could be the business object to which that browse dialog is bound.  Either you have a field with differing case between the different collections describing the field, or you have a custom property on the business object and you're trying to include it in the search fields. 

Looking at the code, the only dictionary referenced is the FieldDbTypes dictionary on the dictionary.  Check the BO at runtime and make sure that it contains a definition for every field that is contained within the search fields for the browse dialog.

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