将String转换为int而不是获得所需的格式

时间:2015-06-25 07:02:52

标签: sql sql-server vb.net casting crystal-reports

我想将字符串转换为int,如下所示:
CAST(TestSth3.Emp_Code AS int)

我需要在水晶报告中输出1234,当我从数据库获得输出时正确显示,但在Crystal中它再次转换为1,234而不是1234。

我正在使用vb.net 2008和SQL服务器。

4 个答案:

答案 0 :(得分:2)

我认为你需要尝试这个解决方案,在字符串

中将','替换为''

看看下面的代码

CAST(REPLACE(TestSth3.Emp_Code, ',', '') AS int) As Clm

答案 1 :(得分:1)

目前还不清楚你的问题我只是在这里指出一些事实

如果你的字符串是1234 那么当你尝试select cast(yournum,int)时会给你正确的结果 例子

select cast('1234'as int) as num

将会产生结果

1234 

或者你的字符串是1,234 然后 尝试以下它将给出结果

declare  @num varchar(10) ='1,234'

select CONVERT(int, replace(@num,',',''))as number

select CAST(replace(@num,',','') AS int)as number2

结果1234

你还需要仔细检查TestSth3.Emp_Code那是什么意思?这是一个参数? 如果是,那么需要@before,我认为不可能创建一个参数名称,包括。(点)所以仔细检查一下。

<强>更新

如果基于水晶报告的问题则按照以下步骤进行

  

右键单击该字段,然后选择“格式化对象”。选择   样式列表中的“自定义样式”,然后单击“自定义”。打钩   “千位分隔符”,以及任何其他不需要的格式。

     

如果失败,您可以尝试选择字段并删除“,”   属性窗口中属性“ThousandSeperator”的值。

或使用以下公式

CStr(YourField, 0, '')

答案 2 :(得分:0)

我认为this post更好地总结了问题。 @MattWhitfield说:

  

格式化显示数字是应该在   显示图层,而不是数据库中。所以,无论如何   应用程序此数据最终被使用,您应该在那里格式化它。   不幸的是,Management Studio在这方面没有提供太多控制权   方面。

编辑:整数没有格式。例如。六个鸡蛋被格式化为鸡蛋,而不是数字,但它们仍然是6.格式与数字无关。但是,如果您想要显示特定格式的整数(带或不带千位分隔符 - 逗号),请在报告或VB表单中将其再次转换回字符串 ,而不是在数据库中(或将其保留为字符串,因为它已经是一个字符串)。

答案 3 :(得分:0)

简单的方法是使用水晶报告功能:

ToNumber(TestSth3.Emp_Code)