Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
删除行提示
当删除一行或多行时,如果要删除行中的“一级类别”、“二级类别”、“三级类别”、“四级类别”、“五级类别”、“六级类别”列的值与其它行不重复(类似不重复行),则提示“该行包含类别 是否删除?”
请问如何设置?
下载信息 [文件大小: 下载次数: ] | |
![]() |
'删除行BeforeDeleteDataRow
Dim dr As DataRow = e.DataRow
Dim dr1 As List(of DataRow) = e.DataTable.Select("一级类别 Like '" & dr("一级类别") & "'And 二级类别 Like '" & dr("二级类别") & "'And 三级类别 Like '" & dr("三级类别") & "' And 四级类别 Like '" & dr("四级类别") & "' And 五级类别 Like '" & dr("五级类别") & "' And 六级类别 Like '" & dr("六级类别") & "'")
Dim d8 As String = dr("货品编号")
Dim d7 As String = " 货品编号:" & d8 & " 该行包含类别, 是否删除?"
If dr("货品编号") IsNot Nothing And dr1.count = 1 Then
If MessageBox.Show(d7,"提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.No Then
e.Cancel= True
Else
End If
End If
“一级类别”……“六级类别”列的值都非空时,能正常提示,如果某一列为空值时,不会提示,请问如何设置?
=和like对于null无效。
你应该逐列合成表达式:
Dim nms() As String = {"一级类别","二级类别","三级类别","四级类别","五级类别","六级类别"}
Dim flt As String
Dim dr As DataRow = e.DataRow
For Each nm As String In nms
If flt > "" Then
flt = flt & " And "
End If
If dr.IsNull(nm) Then
flt = flt & nm & " Is Null"
Else
flt = flt & nm & "= '" & dr(nm) & "'"
End If
Next
If e.DataTable.Select(flt).Count = 1 Then
End If