Details
Assignee
UnassignedUnassignedReporter
Steven WestSteven WestStory Size
UnknownSeverity
MajorTriage
TriagedIncludes Code Fix
NoComponents
Affects versions
Priority
Medium
Details
Details
Assignee
Unassigned
UnassignedReporter
Steven West
Steven WestStory Size
Unknown
Severity
Major
Triage
Triaged
Includes Code Fix
No
Components
Affects versions
Priority
Created March 9, 2016 at 8:38 PM
Updated October 18, 2017 at 4:38 PM
The VW_MODULES view has the below CASE statement causing an error:
CASE WHEN tm.IconFile LIKE 'fileid=%' THEN
(SELECT IsNull(Folder, '') + [FileName]
FROM dbo.[vw_Files]
WHERE fileid = CAST(SUBSTRING(tm.IconFile, 8, 10) AS int)) ELSE COALESCE (tm.IconFile, '') END AS IconFile
When this view is joined to another table as in the stored procedure 'getModulebyDefinition', the subquery in the above codes is fired for some unknown reason. The substring returns a partial string of a file path for iconfile. It cannot be cast to integer and, therefore, causes the error stated below.
My proposed solution is to change the code to the following:
CASE WHEN tm.IconFile LIKE 'fileid=%' THEN
(SELECT IsNull(Folder, '') + [FileName]
FROM dbo.[vw_Files]
WHERE CAST(fileid AS nchar(10)) = SUBSTRING(tm.IconFile, 8, 10)) ELSE COALESCE (tm.IconFile, '') END AS IconFile
The result is the same but no cast accidental casting of strings to integers will happen. I am currently working on a code change and will issue a pull request when fixed.
Error:
[FATAL] DotNetNuke.Framework.PageBase - An error has occurred while loading page.
System.Data.SqlClient.SqlException (0x80131904): Conversion failed when converting the nvarchar value '/Sigma/Use' to data type int.
at System.Data.SqlClient.SqlConnection. (SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection. (SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
at System.Data.SqlClient.SqlDataReader.TryReadInternal(Boolean setTimeout, Boolean& more)
at System.Data.SqlClient.SqlDataReader.Read()
at DotNetNuke.Common.Utilities.CBO.CreateObjectFromReader(Type objType, IDataReader dr, Boolean closeReader)
at DotNetNuke.Common.Utilities.CBO.FillObject[TObject](IDataReader dr)
at DotNetNuke.Entities.Modules.ModuleController.GetModuleByDefinition(Int32 portalId, String definitionName)
at DotNetNuke.UI.ControlPanels.ControlBar.GetTabURL(List`1 additionalParams, String toolName, Boolean isHostTool, String moduleFriendlyName, String controlKey, Boolean showAsPopUp)
at DotNetNuke.UI.ControlPanels.ControlBar.BuildToolUrl(String toolName, Boolean isHostTool, String moduleFriendlyName, String controlKey, String navigateUrl, Boolean showAsPopUp)
at ASP.admin_controlpanel_controlbar_ascx.__RenderControlPanel(HtmlTextWriter __w, Control parameterContainer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at ASP.admin_controlpanel_controlbar_ascx._Render_control1(HtmlTextWriter __w, Control parameterContainer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at DotNetNuke.Framework.PageBase.Render(HtmlTextWriter writer)
at DotNetNuke.Framework.DefaultPage.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)