以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 禁止重复值 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177434) |
-- 作者:lianghanyu -- 发布时间:2022/5/22 9:57:00 -- 禁止重复值 If e.DataCol.Name = "优先等级" Then Dim dr As DataRow dr = e.DataTable.SQLFind("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师") & "\'") If dr IsNot Nothing Then MessageBox.Show("同一设计师无法设置两个相同的优先级别") e.Cancel = True End If End If 在 datacolchanging 中加入这个代码, 在一定程度上可以避免输入重复值。 但是实际使用过程中,遇到问题: 如果编辑的时候,同时编多行后再保存,那么在编辑的过程中,无法判断出输入重复值 。 如下图片: |
-- 作者:有点蓝 -- 发布时间:2022/5/22 20:18:00 -- 查多一次 If e.DataCol.Name = "优先等级" Then Dim dr As DataRow dr = e.DataTable.SQLFind("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师") & "\'") If dr IsNot Nothing Then MessageBox.Show("同一设计师无法设置两个相同的优先级别") e.Cancel = True else dr = e.DataTable.Find("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师") & "\'") If dr IsNot Nothing Then MessageBox.Show("同一设计师无法设置两个相同的优先级别") e.Cancel = True End If End If End If |
-- 作者:lianghanyu -- 发布时间:2022/5/23 8:31:00 -- 如果我把优先等级全部清除, 所有格是空值就会出错了!!!!!!!! |
-- 作者:有点蓝 -- 发布时间:2022/5/23 9:00:00 -- If e.DataCol.Name = "优先等级" Then if e.DataRow.isnull("优先等级")=false andalso e.DataRow.isnull("当前设计师") =false Dim dr As DataRow dr = e.DataTable.SQLFind("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师") & "\' and _identify <> " & e.DataRow("_identify") ) If dr IsNot Nothing Then MessageBox.Show("同一设计师无法设置两个相同的优先级别") e.Cancel = True else dr = e.DataTable.Find("优先等级 = \'" & e.NewValue & "\' And 当前设计师 = \'" & e.DataRow("当前设计师") & "\' and _identify <> " & e.DataRow("_identify") ) If dr IsNot Nothing Then MessageBox.Show("同一设计师无法设置两个相同的优先级别") e.Cancel = True End If End If end if End If
|
-- 作者:lianghanyu -- 发布时间:2022/5/23 9:38:00 -- 删除时还是会出错。不知道 为什么。 就是它原来如果有内容的话,我删除,会出示出错: |
-- 作者:有点蓝 -- 发布时间:2022/5/23 9:50:00 -- 调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错 |