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

DataTable.Compute 方法中的Bug
運行環境:w2k(繁體)+NET   Framework   1.1   Service   Pack   1(KB867460-X86)-tw+vs.net2003(繁體)+CrystalReport10

this.lbl96Lessen.Text=this.myDataSet.Tables[this.myDataMember].Compute( "count(empl_NewMon) ", "empl_NewMon=96 ").ToString();
this.lblOldMon.Text=Convert.ToInt64(this.myDataSet.Tables[this.myDataMember].Compute( "sum(empl_OldMon) ", " ")).ToString();
當this.myDataSet.Tables[this.myDataMember].Rows.Count> 0的情況下,以上代碼沒有問題;
當this.myDataSet.Tables[this.myDataMember].Rows.Count> 0的情況下,以上的第二行(Sum函數)代碼出現錯誤 "物件不可以從DBNull轉換成其它型別 ",在沒有行的情況下,還sum什么,而count又沒有問題,這是程序本身的Bug嗎?

------解决方案--------------------
你的sum() 是函数吗?? 怎么看上去想是个字符串
"sum(empl_OldMon) "
------解决方案--------------------
this.myDataSet.Tables[this.myDataMember].Rows.Count=0时
注意这时count就是=0
这时要不报错就直接写sum(empl_OldMon)=0,ok!
------解决方案--------------------
因该只是数据类型的控制,个人认为。。。