I would rather not say how long it took :-). Actually, it took a few hours. I had right-click on any file to see that you could open it with a different editor.
>Chris:
>
>FWIW, I see the same thing. I have to add .mmBusinessObject to "using OakLeaf.MM.Main.Business" in order to open it directly from the solution explorer. After I do that, I can open it, then take the .mmBusinessObject out of there and continue opening the thing as before. I actually HAD to remove .mmBusinessObject, as the compiler started complaining if I left it in.
>
>I am sure glad you had figured it out already by the time I got to it. (How long did it take for you to figure out what to do to fix it?)
>
>
>Now I have to try to and figure out why the update broke something else in my app that used to work just fine (thank you) with the previous version. The error I get after the update is:
>
>****************
>
>Prepared statement '(@UserFK nvarchar(4000)) SET FMTONLY OFF; SET NO_BROWSETABLE ON;' expects parameter @UserFK, which was not supplied.
>Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
>
>Exception Details: System.Data.SqlClient.SqlException: Prepared statement '(@UserFK nvarchar(4000)) SET FMTONLY OFF; SET NO_BROWSETABLE ON;' expects parameter @UserFK, which was not supplied.
>
>Source Error:
>
>An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
>
>Stack Trace:
>
>
>[SqlException: Prepared statement '(@UserFK nvarchar(4000)) SET FMTONLY OFF; SET NO_BROWSETABLE ON;' expects parameter @UserFK, which was not supplied.]
> System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
> System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
> System.Data.SqlClient.SqlCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
> System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
> System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
> System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
> OakLeaf.MM.Main.Data.mmDataAccessSql.FillDataSet(DataSet ds, IDbDataAdapter dbAdapter, String tableName, Boolean clearOnFill)
> OakLeaf.MM.Main.Data.mmDataAccessSql.FillDataSet(DataSet ds, IDbCommand command, String tableName, Boolean clearOnFill)
> OakLeaf.MM.Main.Data.mmDataAccessSql.FillDataSet(DataSet ds, String command, String tableName, CommandType cmdType, IDbDataParameter[] dataParms, Boolean clearOnFill)
> OakLeaf.MM.Main.Business.mmBusinessObject.FillDataSet(DataSet ds, String command, String tableName, String databaseKey, CommandType cmdType, IDbDataParameter[] dataParams)
> OakLeaf.MM.Main.Business.mmBusinessObject.GetDataSet(String command, String tableName, String databaseKey, CommandType cmdType, IDbDataParameter[] dataParams)
> OakLeaf.MM.Main.Business.mmBusinessObject.GetDataSet(String command, String tableName, String databaseKey, IDbDataParameter[] dataParams)
> OakLeaf.MM.Main.Business.mmBusinessObject.GetDataSet(String command, String tableName, IDbDataParameter[] dataParams)
> OakLeaf.MM.Main.Business.mmBusinessObject.GetDataSet(String command, IDbDataParameter[] dataParams)
> OakLeaf.MM.Main.Security.mmUserSecurity.GetUserSecurityByPK(Object userPK)
> OakLeaf.MM.Main.Security.mmSecurityManager.GetAccessLevel(Object userPK, Guid securityID)
> OakLeaf.MM.Main.Web.UI.mmUIHelper.RegisterSecurity(Control control)
> OakLeaf.MM.Main.Web.UI.WebControls.mmDataGrid.RegisterSecurity()
> OakLeaf.MM.Main.Web.UI.WebControls.mmDataGrid.OnPreRender(EventArgs e)
> System.Web.UI.Control.PreRenderRecursiveInternal()
> System.Web.UI.Control.PreRenderRecursiveInternal()
> System.Web.UI.Control.PreRenderRecursiveInternal()
> System.Web.UI.Page.ProcessRequestMain() +1489
>
>
>
>**********************
>
>
>Arrrrgh & Thanks!
>
>
>Pertti
>
>
>>Sorry for the vague title. I wasn't sure how to explain it :-).
>>
>>I just upgraded from verion 1.1 to version 1.2 of MM.NET. After upgrading, I opened the Order System Business Object solution I had built earlier (either version 1.0 or 1.1 of MM.NET). When I tried to open the file Business.cs, I got an error. Something similar to:
>>
>>The base class 'OakLeaf.MM.Main.Business.mmBusinessObject' cannot be designed.
>>
>>After awhile, I figured out how to open the file (right-click, Open With..., C Sharp Editor with Encoding). In my file I had:
>>
>>
>>using OakLeaf.MM.Main;
>>using OakLeaf.MM.Main.Business;
>>using OakLeaf.MM.Main.Security;
>>using OakLeaf.MM.Main.Managers;
>>
>>namespace Acme.OrderSystem.Business
>>{
>> /// <summary>
>> /// Application-level Business Object class
>> /// </summary>
>> public class ABusinessObject : mmBusinessObject
>> {
>> public ABusinessObject()
>> {
>> DatabaseKey = "Northwind";
>> }
>> }
>>
>>
>>I changed the definition of the class to:
>>
>>
>>public class ABusinessObject : OakLeaf.MM.Main.Business.mmBusinessObject
>>
>>
>>And I was able to open the file normally, no errors like before. Then I changed the definition of the class back to the way it was originally, without the explicit reference:
>>
>>
>>public class ABusinessObject : mmBusinessObject
>>
>>
>>And it worked when I tried to open it again normally. Anyone have any idea what's going on?
Chris McCandless
Red Sky Software