以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  sql合成语句自己写保存代码,beforesavedatarow里的代码只会判断第一行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153869)

--  作者:vimin
--  发布时间:2020/8/26 10:29:00
--  sql合成语句自己写保存代码,beforesavedatarow里的代码只会判断第一行
因为涉及到事务,所以保存功能我自己写了sql语句,同时为了让系统的保存功能取消,写了语句“e.cancel = true”,代码如下:

Dim zd As String() = {"A","B","AA","BB"}
For Each z As String In zd
    If e.DataRow.IsNull(z) Then
        MessageBox.Show(z & " 必须选择")
        e.Cancel = True
        Return
    End If
Next

e.Cancel = True

这里又带来了一个新的问题:我有2行及以上的新行,这个代码就不会再判断第二行,第二行“A”列为空,也是会继续执行下去,sql语句就会insert,然后跳出sqlserver的错误提示。
这个问题有办法解决吗?

--  作者:有点蓝
--  发布时间:2020/8/26 10:45:00
--  
既然自己写代码保存,就不要用系统的这个事件了。做个窗口或者菜单按钮做判断和保存吧