代码之家  ›  专栏  ›  技术社区  ›  Ted Gueniche

这是什么类型:ISNULL(SUM(COALESCE(a.currency,0)),0)

  •  0
  • Ted Gueniche  · 技术社区  · 14 年前

    Sql += " SELECT     ISNULL(SUM(COALESCE (a.currency, 0)), 0) AS monthCurrency              
    FROM          IW_Awards AS a ";
    

    我试过int,int?还有绳子。当我试图转换为字符串时,出现以下错误消息: 无法强制转换类型为“”的对象System.Decimal'到类型'System.String'.

    当我试着把它转换成Int还是Int?我得到了:

    数据库:SQL IDE:Visual Studio 2010 数据库接口:LINQ(但我正在创建自己的查询) 服务器端语言:C#

    谢谢你的帮助。

    6 回复  |  直到 14 年前
        1
  •  5
  •   Mike M.    14 年前

    你试过十进制吗?它告诉过你它在试着System.Decimal 当你试着把它铸成一根线的时候。

        2
  •  2
  •   HLGEM    14 年前

    什么类型的货币?我想说这可能是错误消息中的十进制数据类型。

    出于好奇,为什么使用coalesce和isnull?由于已经将所有空值都更改为0,因此根本不需要外部isnull。

        3
  •  1
  •   Alex Zylman    14 年前

        4
  •  1
  •   David Williams    14 年前

    在我看来,结果是 decimal ,基于指定无法从转换的错误消息 System.Decimal .

        5
  •  1
  •   µBio    14 年前

    正如其他人所提到的,这是 decimal 你要找的,但我想加上这个 link 到CLR-SQL类型映射文档(非常有用的链接)。

        6
  •  1
  •   Yuriy Faktorovich    14 年前

    如果数据库中的currency是int,则使用 Convert.ToInt32 . 另一种选择是使用 myTable.Rows[0].Field<int>("monthCurrency") System.Data 命名空间。问题是,有时即使您从SqlServer返回int,.NET仍然认为它是十进制数。