敬请帮助:DataGrid中的疑问,谢谢
事由:
我在Datagrid中加载工资表数据,并在datagrid的数据源表中加入了RowChanged事件,当更改时计算实发工资,事件代友如下:
Private Sub RowChangedofEmployeePay(ByVal sender As Object, ByVal e As DataRowChangeEventArgs)
'
If e.Action = DataRowAction.Change Then
Try
e.Row.Item("实发工资") = e.Row.Item("基本工资") + e.Row.Item("奖金") + e.Row.Item("提成") + e.Row.Item("补贴") - e.Row.Item("扣除")
Catch ex As Exception
MessageBox.Show("计算出错:" & ex.Message)
End Try
End If
If e.Action = DataRowAction.Add Then
If IsDBNull(e.Row.Item("员工姓名")) Or IsDBNull(e.Row.Item("月份")) Then e.Row.RejectChanges()
End If
End Sub
-------------------------------------------------------------------------------------
出错提示:
ex.Message="System.StackOverFlowExecption"
相关疑问:
1、此错误提示如何解决
2、能不能只在“基本工资、奖金、提成、补贴、扣除”这几列更改时才触发事件
因初学VB.NET,能否给与实例解决,不胜感激,谢谢!
问题点数:50、回复次数:7Top
1 楼singlepine(小山)回复于 2005-05-06 10:02:35 得分 10
MessageBox.Show("计算出错:" & ex.Message)
改为
MessageBox.Show("计算出错:" & Convert.ToString(ex.Message))
或
MessageBox.Show("计算出错:" & ex.Message.value)
试试Top
2 楼xn000(涵夫)回复于 2005-05-06 10:27:04 得分 10
e.Row.Item("基本工资")
是什么类型,,,是数据类型么???Top
3 楼usersmj(狼之舞)回复于 2005-05-06 10:33:13 得分 0
字段:基本工资、奖金、提成、补贴、扣除
均是数值型哈,默认值均为0Top
4 楼henrysap(henry)回复于 2005-05-10 13:31:57 得分 20
先作判断:
if e.row is nothing then exit subTop
5 楼leeyeefeng2004(leeyeefeng)回复于 2005-05-10 13:35:01 得分 10
upTop
6 楼usersmj(狼之舞)回复于 2005-05-10 17:06:16 得分 0
谢谢各位支招Top
7 楼usersmj(狼之舞)回复于 2005-05-29 18:10:23 得分 0
解决,先判断是否为空(ISDBNULL)
不为空在计算Top




