返回ExecuteScalar的值强制类型转换,出现"指定数据转换无效"
来源:互联网 发布:编程1表示存在 编辑:程序博客网 时间:2024/05/18 18:47
1. 如果想统计某列总和,则使用 SELECT SUM(列名) 。注意,如果列中包含小数字,比如 1.25 ,则要使用double型而不能使用int型。代码演示:
double d = (double)Socut.Data.ExecuteScalar("SELECT SUM(s_id) FROM socut_data");
2. 如果想统计某列数据的平均值,则要使用 SELECT AVG(列名)。
3. 如果获取某列中的最大值,则使用SELECT MAX(列名)。反之,最小值为SELECT MIN(列名)
如果我用double d = (double)Data.ExecuteScalar("SELECT SUM(s_id) FROM socut_data");程序执行正常。
如果我用double d = (double)Data.ExecuteScalar("SELECT SUM(s_id) FROM socut_data",1);程序执行错误(指定数据转换无效)。
第一个是调用ACCESS数据库,第二个是调用SQL,这是为什么同一条命令会出错呢?
经过多次测试,结果让人痛苦:
int i = (int)Data.ExecuteScalar("SELECT COUNT(s_id) FROM socut_data");程序执行OK;
int i = (int)Data.ExecuteScalar("SELECT SUM(s_id) FROM socut_data");程序执行错误(指定数据转换无效)。
后来经测试:
double d = (double)Data.ExecuteScalar("SELECT SUM(s_id) FROM socut_data");
改成:double d = Convert.ToDouble(Data.ExecuteScalar("SELECT SUM(s_id) FROM socut_data"));
我们可以强制进行转换,程序不会出错,且达到转换之结果。不会出现任何转换问题。
以下是该Data.ExecuteScalar方法
public object Data.ExecuteScalar(...)
{
........
}
- 返回ExecuteScalar的值强制类型转换,出现"指定数据转换无效"
- [c#]从数据库中用ExecuteScalar()读取值使用(int)强制类型转换发生System.InvalidCastException: 指定的转换无效
- php 的数据强制类型转换和默认类型转换
- 基本数据的自动类型转换和强制类型转换
- php 的数据强制类型转换和默认类型转换
- 强制的类型转换
- 强制类型的转换
- 强制类型转换与非强制类型转换后出现的问题
- 关于结构体类型数据的强制类型转换
- 类型强制转换的危险
- 强制类型转换的问题
- 指针的强制类型转换
- java的强制类型转换
- 函数的强制类型转换
- C#的强制类型转换
- 指针的强制类型转换
- 指针的强制类型转换
- C++的强制类型转换
- -------------platform下的Display.reg开机亮灯的代码----------------------
- 上班族短命的十种生活方式
- 如何规划职业发展道路——给软件从业人员的建议
- ---------------------------MC1000下获取唯一机器号----------------------------------
- 对比中美两国小学三年级的练习题:能力和技巧的选择
- 返回ExecuteScalar的值强制类型转换,出现"指定数据转换无效"
- C#只允许启动一个进程
- 什么是Web Service (基础篇)
- -------------------MC1000 下冷启动后自动安装程序-------------------------------
- 测试
- 类 SimpleDateFormat
- sender,e 的意义
- 学习论
- 2008年,中国程序员准则!(转)