以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  错误捕获  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46545)

--  作者:kingsoft50
--  发布时间:2014/2/25 14:13:00
--  错误捕获
Try
    Select Case _OperationType

        Case OperationTypeEnum.add
            For Each R As Row  In e.Form.Controls("Table1").Table.Rows
                If r.DataRow.RowState=DataRowState.Added
                    r.Save
                End If
            Next
            e.Form.Controls("txtzt").text="当前状态:查阅"
        Case OperationTypeEnum.edit
            For Each R As Row  In e.Form.Controls("Table1").Table.Rows
                If r.DataRow.RowState=DataRowState.Modified
                    r.Save
                End If
            Next
            e.Form.Controls("txtzt").text="当前状态:查阅"
    End Select

    e.Sender.Enabled =False
Catch ex As Exception
    MessageBox.Show(ex.tostring,"向服务器提交数据错误!",MessageBoxButtons.OK)
End Try


应该在r.Save这句就出错了,可为什么 e.Sender.Enabled =False会被执行了呢



--  作者:Bin
--  发布时间:2014/2/25 14:17:00
--  
1.不是R.Save出错
2.你执行了多次,第一次不出错,第二次才出错.

--  作者:yedaoan
--  发布时间:2014/2/25 14:24:00
--  
  关键是出错的时候 e.Sender.Enabled =False怎么会执行呢
--  作者:kingsoft50
--  发布时间:2014/2/25 14:25:00
--  
我是表里已经有条记录了,做了一条一样的记录,这时应该直接出错,不应该执行 e.Sender.Enabled =False
--  作者:Bin
--  发布时间:2014/2/25 14:25:00
--  
上例子吧,没东西调戏,瞎猜没结果的
--  作者:653006728
--  发布时间:2014/2/25 14:26:00
--  
因为你的这句代码 在select 外面。所以会执行
--  作者:653006728
--  发布时间:2014/2/25 14:26:00
--  
以下是引用Bin在2014-2-25 14:25:00的发言:
上例子吧,没东西调戏,瞎猜没结果的
兄弟。。连bin你都敢调戏。。


--  作者:kingsoft50
--  发布时间:2014/2/25 14:35:00
--  
在select 外面就会执行吗?
--  作者:kingsoft50
--  发布时间:2014/2/25 14:48:00
--  
怎么样让他出错后就不执行呢
--  作者:kingsoft50
--  发布时间:2014/2/25 15:35:00
--  
用户名0000


这个是在基础数据——单位信息里打开,按新增 后,保存按钮里的