为什么用阿拉伯数字替换整数值会给我不同的结果Gridview

时间:2016-05-29 04:16:50

标签: gridview sql-server-2005

我有一个名为' topicfull'码。它的类型是varchar(50)。我有一些值如下 enter image description here

现在我想将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查询窗口的以下结果。

enter image description here

但是当我在Gridview中显示这些数据时,小数点似乎是逗号(,),如下图所示。

enter image description here

我需要知道为什么会这样,并解决它。

0 个答案:

没有答案