Foxtable(狐表)用户栏目专家坐堂 → 如何让保存数据前检查行中的列不为空的代码更简洁?


  共有9967人关注过本帖树形打印复制链接

主题:如何让保存数据前检查行中的列不为空的代码更简洁?

帅哥哟,离线,有人找我吗?
zpx_2012
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
如何让保存数据前检查行中的列不为空的代码更简洁?  发帖心情 Post By:2012/10/9 22:19:00 [显示全部帖子]

各位老师,

 

如何运用select case让下面红色的代码能够更简洁些?

 

以下是保存数据前在BeforeSaveDataRow检查行中的列不能为空的代码,行中可能有很多列的数据都要求不能为空。

 

If e.DataRow("唛头") = "" OrElse e.DataRow("业务员") = "" OrElse e.DataRow("生产单号") = "" OrElse e.DataRow.GetChildRows("生产明细").Count = 0 Then '判断是否不符合验证要求
    MessageBox.Show("唛头,业务员,生产单号,生产明细不能为空","存盘失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) '提示用户
End If

 

就象下面DataColChanging的代码一样比较简洁,

'表中的列不允许为空

'Select Case e.DataCol.Name

'    Case "生产单号","唛头","业务员"

'    If e.NewValue Is Nothing Then

'        MessageBox.Show("'生产单号,唛头,业务员'不允许为空!")

'        e.Cancel = True

'    End If

'End Select

 

BeforeSaveDataRow又没有DataCol,NewValue这样的e参数? 

 

谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
zpx_2012
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:976 积分:8521 威望:0 精华:0 注册:2012/2/9 16:35:00
  发帖心情 Post By:2012/10/9 23:23:00 [显示全部帖子]

谢谢二楼,不过你用的那几个e参数都不能用,倒是你提醒我用数组,可以了。代码如下与大家分享

 

Dim ColNames As String() = {"唛头","业务员","生产单号"}
For Each ColName As String In ColNames
    If  e.DataRow(ColName) = "" Then
        MessageBox.Show("唛头,业务员,生产单号,生产明细不能为空","存盘失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) '提示用户
    End If
Next


 回到顶部