加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – mysql中SUM()的返回类型是什么?

发布时间:2020-12-15 08:20:58 所属栏目:百科 来源:网络整理
导读:我正在用C#.NET编写一个程序 我想收集一个班级的总频率(让我们想象每个班级都有很多单词,每个单词在相应的班级中都有自己的频率) 所以我在mysql中使用了sum()函数.但是有一个错误说我的演员是错的. public void average_each_type() { MySqlDataReader resul
我正在用C#.NET编写一个程序
我想收集一个班级的总频率(让我们想象每个班级都有很多单词,每个单词在相应的班级中都有自己的频率)

所以我在mysql中使用了sum()函数.但是有一个错误说我的演员是错的.

public void average_each_type()
        {
            MySqlDataReader result;
            int total_freq = 0;
            string type = "";

            command.CommandText = "select class_name,SUM(frequency) as sum_of_freq from training_set group by class_name ";


                result = command.ExecuteReader();
                while (result.Read())
                {

                    total_freq = (int)result["sum_of_freq"]; //error happened here
                    type = result["class_name"].ToString();
                    //.....then so on...//

解决方法

MySql中的SUM将返回十进制或双精度值,具体取决于“频率”中的类型.从 documentation for SUM:

The SUM() and AVG() functions return a DECIMAL value for exact-value arguments (integer or DECIMAL),and a DOUBLE value for approximate-value arguments (FLOAT or DOUBLE). (Before MySQL 5.0.3,SUM() and AVG() return DOUBLE for all numeric arguments.)

如果你想要一个整数,无论??源类型是什么,你都可以使用Convert得到一个:

total_freq = Convert.ToInt32(result["sum_of_freq"]);

这里的优点是无论从数据库返回什么类型的值,Convert.ToInt32都可以工作,只要它是数字类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读