Reporting services SSRS将参数转换为int
正如主题所述,SSRS报表正在将varchar参数转换为int。该参数是一种文本类型,当我在存储过程的报表设计器弹出窗口中输入0002时,该报表不起作用,但在查看sql profiler时,我们可以看到它已转换为intReporting services SSRS将参数转换为int,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,正如主题所述,SSRS报表正在将varchar参数转换为int。该参数是一种文本类型,当我在存储过程的报表设计器弹出窗口中输入0002时,该报表不起作用,但在查看sql profiler时,我们可以看到它已转换为int 需要帮助。我不确定是否正确理解了您的意思,但如果您希望从字符串中删除前导0,然后将其转换为int,例如将“0002”转换为2,则可以使用此命令从报告中传递参数并执行以下过程: CONVERT(INT,SUBSTRING(@parameter, PATINDEX('%[^0]%'
需要帮助。我不确定是否正确理解了您的意思,但如果您希望从字符串中删除前导0,然后将其转换为int,例如将“0002”转换为2,则可以使用此命令从报告中传递参数并执行以下过程:
CONVERT(INT,SUBSTRING(@parameter, PATINDEX('%[^0]%', @parameter), LEN(@parameter)))
将@parameter替换为报告中的参数名称。在数据集属性中:
转到参数部分。单击“fx”按钮为参数值创建表达式。使用CInt函数将参数转换为int:
如果您正在谈论从RDL向存储过程传递参数。 打开报表RDL时,转到BIDS中左侧报表数据面板上的报表参数属性 选择“参数”,单击鼠标右键并转到“属性”。 选择数据类型作为文本。这应该对你有用
您是说希望SP将0002而不是2视为int?您为参数选择了什么数据类型?存储过程需要什么数据类型?shellNija没错。param的数据类型是Text,存储的proc是varchar100,但我尝试了1000和4000