我有一个名为' topicfull'码。它的类型是varchar(50)。我有一些值如下
现在我想将topicFullCode的值更改为阿拉伯数字。所以我使用以下查询更改了表名的类型。
ALTER TABLE TopicInfo
ALTER COLUMN topicFullCode NVARCHAR(50) null
然后按如下方式创建一个函数:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[ReplaceIntegersWithArabicNumbers]
(
@str NVARCHAR(1000)
)
RETURNS NVARCHAR(2000)
AS BEGIN
DECLARE @newStr NVARCHAR(1000)
set @newStr= ''
declare @val NVARCHAR(1)
set @val = ''
declare @i INT
set @i = 1
WHILE @i<=LEN(@str)
BEGIN
SET @val = SUBSTRING(@str, @i, 1)
IF ((@val) >= '0' and (@val) <= '9')
BEGIN
SET @val =
CASE @val
WHEN 1 THEN N'۱'
WHEN 2 THEN N'۲'
WHEN 3 THEN N'۳'
WHEN 4 THEN N'٤'
WHEN 5 THEN N'۵'
WHEN 6 THEN N'٦'
WHEN 7 THEN N'۷'
WHEN 8 THEN N'۸'
WHEN 9 THEN N'۹'
WHEN 0 THEN N'۰'
END -- CASE
END -- IF
SET @newStr = (@newStr + @val)
SET @i=@i+1
END -- WHILE
RETURN @newStr
END
执行以下查询以替换值。
UPDATE TopicInfo
SET topicFullCode = dbo.ReplaceIntegersWithArabicNumbers(topicFullCode)
它显示了SQL Server 2005查询窗口的以下结果。
但是当我在Gridview中显示这些数据时,小数点似乎是逗号(,),如下图所示。
我需要知道为什么会这样,并解决它。