Foxtable(狐表)用户栏目专家坐堂 → 后台数据库中有,查找确显示是0


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

主题:后台数据库中有,查找确显示是0

美女呀,离线,留言给我吧!
lfz123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4607 威望:0 精华:0 注册:2018/3/24 18:04:00
后台数据库中有,查找确显示是0  发帖心情 Post By:2019/6/30 17:30:00 [只看该作者]

后台数据库中有,查找确显示是0

图片点击可在新窗口打开查看此主题相关图片如下:fa piao号码.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:select语句.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/6/30 17:30:09编辑过]

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


加好友 发短信
等级:童狐 帖子:290 积分:2086 威望:0 精华:0 注册:2013/11/23 10:11:00
  发帖心情 Post By:2019/6/30 17:37:00 [只看该作者]

改为: where fa piao号码='63474500'

 回到顶部
美女呀,离线,留言给我吧!
lfz123
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:530 积分:4607 威望:0 精华:0 注册:2018/3/24 18:04:00
回复:(yd0731)改为: where fa piao号码='63474500'  发帖心情 Post By:2019/6/30 18:20:00 [只看该作者]

按照您的方法我试过是可以的,其实我是写在datacolchanging中的,代码就不行了
If e.DataCol.Name = "fa piao号码" Then '禁止fa piao号码重复
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText ="Select Count(*) Fro m {销项fa piao} Where fa piao号码 = '" & e.DataRow("fa piao号码") & "'"
    MessageBox.Show(cmd.ExecuteScalar)
    If cmd.ExecuteScalar > 0 Then
        e.cancel  = True '取消
        Messagebox.Show("此fa piao号码已经存在","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)       
    End If
End If

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


加好友 发短信
等级:童狐 帖子:290 积分:2086 威望:0 精华:0 注册:2013/11/23 10:11:00
  发帖心情 Post By:2019/7/1 7:20:00 [只看该作者]

DataColChanging
某一列的内容发生变化前执行,此时新值还没有写入表中,列的内容还是更改前的值。
利用此事件,我们可以在某列内容发生变化之前进行拦截判断,如果不符合特定的条件,则取消此次变化,或者重新指定一个值。
-------------------------------------------------------------------------------------------------------------------------------------------
因此,要用e.NewValue 来取用户输入的新的值,如果是新增加的一行,此时e.DataRow("fa piao号码")为空,导致后续出错,建议更改为:

If e.DataCol.Name = "fa piao号码" Then '禁止fa piao号码重复
    Dim cmd As New SQLCommand
    'cmd.C
    cmd.CommandText ="Select Count(*) Fro m {销项fa piao} Where fa piao号码 = '" & e.NewValue & "'"
    MessageBox.Show(cmd.ExecuteScalar)
    If cmd.ExecuteScalar > 0 Then
        e.cancel  = True '取消
        Messagebox.Show("此fa piao号码已经存在","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)       
    End If
End If


另外对于表达式的合成,建议使用CExp(),例如:
cmd.CommandText = CExp("Select Count(*) Fro m {销项fa piao} Where fa piao号码 = '{0}' ",e.NewValue)
这样不容易出错。

[此贴子已经被作者于2019/7/1 7:50:29编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/7/1 10:48:00 [只看该作者]

如果datacolchanging事件,改成 e.newvalue

 

cmd.CommandText ="Select Count(*) Fro m {销项fa piao} Where fa piao号码 = '" & e.NewValue & "'"

 

 


 回到顶部