Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Greg Fyans 140 posts 342 karma points
    May 17, 2010 @ 11:32
    Greg Fyans
    0

    4.0.3 - Problem editing a member (IsUserInRole SQL helper exception in ExecuteScalar)

    Hello,

    I'm currently getting the following error when I click to edit a member via the Members tab in Umbraco 4.0.3, has anyone had this before, do you know how to fix it?

    Exception information: 
        Exception type: SqlHelperException
        Exception message: Umbraco Exception (DataLayer): SQL helper exception in ExecuteScalar
     
    Request information:
        Request URL: http://www.***********.com/umbraco/members/editMember.aspx?id=2156
        Request path: /umbraco/members/editMember.aspx

        Stack trace:    at umbraco.DataLayer.SqlHelper`1.ExecuteScalar[T](String commandText, IParameter[] parameters) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\datalayer\SqlHelper.cs:line 198
       at umbraco.cms.businesslogic.member.MemberGroup.HasMember(Int32 memberId)
       at umbraco.providers.members.UmbracoRoleProvider.IsUserInRole(String username, String roleName) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\providers\members\MembersRoleProvider.cs:line 214
       at System.Web.Security.Roles.IsUserInRole(String username, String roleName)
       at umbraco.cms.presentation.members.EditMember.Page_Load(Object sender, EventArgs e)
       at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
       at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
       at System.Web.UI.Control.OnLoad(EventArgs e)
       at umbraco.BasePages.BasePage.OnLoad(EventArgs e)
       at System.Web.UI.Control.LoadRecursive()
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

    I don't have the source, I just downloaded and used the compiled version.

    Let me know if you need any additionald details.

    Cheers,
    Greg.

  • Sebastiaan Janssen 5058 posts 15520 karma points MVP admin hq
    May 17, 2010 @ 11:35
    Sebastiaan Janssen
    0

    Do you happen to be using MySQL?

  • Greg Fyans 140 posts 342 karma points
    May 17, 2010 @ 11:40
    Greg Fyans
    0

    Sorry, should have mentioned, it's SQL Server 2005.

    Greg.

  • Sebastiaan Janssen 5058 posts 15520 karma points MVP admin hq
    May 17, 2010 @ 11:48
    Sebastiaan Janssen
    0

    Alright, well ExecuteScalar is pretty simple, so there's probably something wrong with the parameters. You should check the cmsMember database for anything that could throw it of it's game. Also not that in cmsPropertyData, the properties for the members are stored.

  • Greg Fyans 140 posts 342 karma points
    May 17, 2010 @ 14:27
    Greg Fyans
    0

    OK, I have some more details. Now I'm getting the following error when Umbraco is calling umbraco.cms.businesslogic.member.MemberGroup.HasMember:

    [SqlException (0x80131904): Must declare the scalar variable "@membergroup".]
    System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1950890
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846875
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
    System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
    System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
    System.Data.SqlClient.SqlDataReader.get_MetaData() +83
    System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
    System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954
    System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
    System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
    System.Data.SqlClient.SqlCommand.ExecuteScalar() +139
    Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteScalar(SqlConnection connection, CommandType commandType, String commandText, SqlParameter[] commandParameters) +56
    Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteScalar(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters) +83
    umbraco.DataLayer.SqlHelpers.SqlServer.SqlServerHelper.ExecuteScalar(String commandText, SqlParameter[] parameters) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\datalayer\SqlHelpers\SqlServer\SqlServerHelper.cs:51
    umbraco.DataLayer.SqlHelper`1.ExecuteScalar(String commandText, IParameter[] parameters) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\datalayer\SqlHelper.cs:194

    So why would I suddenly not be sending in the membergroup (which is base.Id (base being CMSNode) in the code)?  This was working :S

    Greg.

  • Greg Fyans 140 posts 342 karma points
    May 17, 2010 @ 15:04
    Greg Fyans
    1

    OK, well that was a fun one to find!

    If you get this error it's because on line 126 of umbraco.cms businesslogic\member\MemberGroup.cs there is a parameter called @membergroup in the CommandText string, but line 128 is looking for @memberGroup (note the capital G).

    Change one so it's the same as the other, compile, upload and bang... works.

    Or it should do :) It works for me.

    Cheers,
    Greg.

Please Sign in or register to post replies

Write your reply to:

Draft