日期:2014-05-20  浏览次数:20859 次

有关datareader问题
strSql= "select   xti,sum(k01)   from   orderdbf   where   hyb= 'kj0101a ' ";
this.cnnOrd.Open();
OleDbCommand   com=new   OleDbCommand(strSql,cnnOrd);
OleDbDataReader   sdr=null;
sdr=com.ExecuteReader(CommandBehavior.CloseConnection);   (此处出错)
我将select语句中的“sum(k01)”去掉后就没有错。是不是datareader不支持sum函数呀?

------解决方案--------------------
sum(k01) as temp
temp 换成随便一个名称
也就是说需要有个输出列名
------解决方案--------------------
sql问题

select xti,sum(k01) from orderdbf where hyb= 'kj0101a ' group by xti

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
如果是 access 数据库
好像也不支持 sum
记不清楚了 欢迎批评指正

另外 这和 reader 没关系
reader 只负责把语句提交过去查询然后取结果
并不负责解释语句
这点概念你要明确
------解决方案--------------------
strSql= "select xti,sum(k01) from orderdbf where hyb= 'kj0101a ' ";
这条SQL语句本身就是不合法的,错误的。

------解决方案--------------------
strSql= "select xti,sum(k01) as Cnt from orderdbf where hyb= 'kj0101a ' ";