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

前端之家收集整理的这篇文章主要介绍了c# – mysql中SUM()的返回类型是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在用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都可以工作,只要它是数字类型.

猜你在找的C#相关文章