Foxtable(狐表)用户栏目专家坐堂 → [求助]身份证读卡器,删除行后报错窗口如何去除


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

主题:[求助]身份证读卡器,删除行后报错窗口如何去除

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


加好友 发短信
等级:幼狐 帖子:64 积分:933 威望:0 精华:0 注册:2015/10/20 15:44:00
[求助]身份证读卡器,删除行后报错窗口如何去除  发帖心情 Post By:2017/2/25 12:52:00 [只看该作者]

老师,好

 

安装身份证读卡器后,在读取身份证以后,设置了一个事件,地址重复会自动删除当前行,但删除以后,会有一个报错

虽然不影响使用,但是不是很美观。

 

 


此主题相关图片如下:身份报错.png
按此在新窗口浏览图片

 

If e.DataCol.Name = "住址" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("住址 = '" & e.NewValue & "'")
    If dr IsNot Nothing Then
        Dim Result As DialogResult
        Result = MessageBox.Show("该客户其他家庭成员已经录入系统,每个家庭只能录入一人,是否联系管理员处理", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            MessageBox.Show("系统管理员:耿伟 电话: 18616152000.","提示")
            e.Cancel = True
            With Tables("身份证到访登记系统")
                .Current.Delete()
            End With
        Else
            e.Cancel = True
            With Tables("身份证到访登记系统")
                .Current.Delete()           
            End With
        End If
    End If
End If

 

Dim Info As String
Info = FileSys.ReadAllText(ApplicationPath &
"wz.txt", Encoding.Default) '读取生成的文本文件
info = info.Replace(vbcrlf,vblf)
'将回车换行替换为换行
Dim
pars() As String = Info.Split(vblf) '将读取的信息拆分为数组
Dim
r As Row = Tables("身份证到访登记系统").AddNew
r(
"姓名") = pars(0).Trim()
r(
"性别") = pars(1).Trim()
r(
"名族") = pars(2).Trim()
r(
"出生日期") = pars(3).replace("年","-").Replace("月","-").Replace("日","")
r(
"住址") = pars(4)
r(
"身份证号码") = pars(5)
r(
"发证机关") = pars(6)
r(
"签发日期") = pars(7).SubString(0,10).Replace(".","-")
r(
"有效日期") = pars(7).SubString(11).Replace(",","-")
FileSys.CopyFile(ApplicationPath &
"zp.bmp", ProjectPath & "\Attachments\" & r("身份证号码") & ".bmp",True) '照片复制到Attachments目录
r(
"照片") = r("身份证号码") & ".bmp"


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


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/25 15:06:00 [只看该作者]

不如增加之前就判断

 

Dim Info As String
Info = FileSys.ReadAllText(ApplicationPath & "wz.txt", Encoding.Default) '读取生成的文本文件
info = info.Replace(vbcrlf,vblf) '将回车换行替换为换行
Dim pars() As String = Info.Split(vblf) '将读取的信息拆分为数组

Dim dr As DataRow = DataTables("身份证到访登记系统").Find("住址 = '" & pars(4) & "'")
If dr IsNot Nothing Then
    Dim Result As DialogResult
    Result = MessageBox.Show("该客户其他家庭成员已经录入系统,每个家庭只能录入一人,是否联系管理员处理", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        MessageBox.Show("系统管理员:耿伟 电话: 18616152000.","提示")
    End If
    Return
End If

Dim r As Row = Tables("身份证到访登记系统").AddNew
r("姓名") = pars(0).Trim()
r("性别") = pars(1).Trim()
r("名族") = pars(2).Trim()
r("出生日期") = pars(3).replace("年","-").Replace("月","-").Replace("日","")
r("住址") = pars(4)
r("身份证号码") = pars(5)
r("发证机关") = pars(6)
r("签发日期") = pars(7).SubString(0,10).Replace(".","-")
r("有效日期") = pars(7).SubString(11).Replace(",","-")
FileSys.CopyFile(ApplicationPath & "zp.bmp", ProjectPath & "\Attachments\" & r("身份证号码") & ".bmp",True) '照片复制到Attachments目录
r("照片") = r("身份证号码") & ".bmp"

 


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


加好友 发短信
等级:幼狐 帖子:64 积分:933 威望:0 精华:0 注册:2015/10/20 15:44:00
回复:(有点蓝)不如增加之前就判断 Dim In...  发帖心情 Post By:2017/2/26 13:00:00 [只看该作者]

如果提前判断的话,手工输入的时候,代码会失效吧。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/26 13:03:00 [只看该作者]

以下是引用gengwvi在2017/2/26 13:00:00的发言:
如果提前判断的话,手工输入的时候,代码会失效吧。

 

DataColChanged事件的代码继续保留。

 

你在身份读取那个地方,再加一个find函数查找是否重复。


 回到顶部