運行環境:w2k(繁體)+NET Framework 1.1 Service Pack 1(KB867460-X86)-tw+vs.net2003(繁體)+CrystalReport10this.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嗎?
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嗎?
解决方案 »
- 火狐浏览器上传控件
- 【求助】如何单击一个link可以运行我自己的程序,就好像迅雷一样
- C# RSA 加密问题
- C#中如何定义结构体中的结构体?
- 100分跪求解决! 急! 请问, remoting调用中, 遇到Unable to find assembly 报错, 有高手遇到过吗?
- 为什么这个插入触发会触发2次
- 一个说难不难说简单不简单的问题:怎样在程序里对WORD页眉进行操作
- 关于Directory.getCurrentirectory的问题
- C#初学,很需要高手门帮我解决
- !~~!画图程序出了问题了,大侠们帮帮忙!~~!
- C#数据连接的问题??
- c#调用oralce函数错误(孟子等高手来,救救我)
"sum(empl_OldMon)"
注意这时count就是=0
这时要不报错就直接写sum(empl_OldMon)=0,ok!
改成这样看看:
object sum = this.myDataSet.Tables[this.myDataMember].Compute("sum(empl_OldMon)",""));if( sum != null )
{
this.lblOldMon.Text=sum.ToString();}
{
this.lblOldMon.Text=sum.ToString();}
看看这样报错不
你的這條語句
object sum = this.myDataSet.Tables[this.myDataMember].Compute("sum(empl_OldMon)",""));
都會出錯
应该在sql语句里加一个处理,IsNull(empl_OldMon,0) AS empl_OldMon
各位在編程中是否有遇到過?
object oldMon=this.myDataSet.Tables[this.myDataMember].Compute("sum(empl_OldMon)","IsNull(empl_OldMon,0)>0");
object newMon=this.myDataSet.Tables[this.myDataMember].Compute("sum(empl_NewMon)","IsNull(empl_NewMon,0)>0");
if(oldMon!=DBNull.Value)
this.lblOldMon.Text=Convert.ToInt64(oldMon).ToString();
else
this.lblOldMon.Text="0";
if(newMon!=DBNull.Value)
this.lblOldMon.Text=Convert.ToInt64(newMon).ToString();
else
this.lblNewMon.Text="0";