以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]学习代码,请问哪里出错了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79211)

--  作者:yumo123
--  发布时间:2015/12/26 14:37:00
--  [求助]学习代码,请问哪里出错了

在学习帮助文件的 开发部分 ,请问 我这段代码 注译部分 哪里错了?总提示错误

 

Select Case e.DataCol.name
Case "身份证号码"
If e.DataRow.IsNull("身份证号码") Then
e.DataRow("籍贯") = Nothing
e.DataRow("性别") = Nothing
e.DataRow("出生日期") = Nothing
e.DataRow("年龄") = Nothing
Else
e.DataRow("性别") = ReadSex(e.DataRow("身份证号码"))
Dim d As Date = ReadBirthDay(e.DataRow("身份证号码"))
e.DataRow("年龄") = Date.Today.year - d.year
e.DataRow("出生日期") = d
\'
\'Dim bm As String = e.DataRow("身份证号码").SubString(0,6)
\'Dim cmd As New SQLCommand
\'cmd.C
\'cmd.CommandText = "SELECT DISTINCT 籍贯编码 FRO M {身份证籍贯编码} WHERE [籍贯编码] = \'" & bm & "\'"
\'Dim dt As DataTable
\'dt = cmd.ExecuteReader()
\'For Each dr1 As DataRow In dt.DataRows
\'e.DataRow("籍贯") = dr1.DataRow("籍贯")
\'Next

End If
End Select


--  作者:Hyphen
--  发布时间:2015/12/26 14:55:00
--  

......

Dim dt As DataTable
dt = cmd.ExecuteReader()
If dt.DataRows.Count > 0 Then
    e.DataRow("籍贯") = dt.DataRows(0)("籍贯编码")
End If

......


--  作者:yumo123
--  发布时间:2015/12/26 15:01:00
--  

还是不行, 提示

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.11.11.1
错误所在事件:
详细错误信息:
标准表达式中数据类型不匹配。
 

 

以及

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.11.11.1
错误所在事件:表,员工, DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。


--  作者:Hyphen
--  发布时间:2015/12/26 15:04:00
--  
贴出修改后的完整代码
--  作者:yumo123
--  发布时间:2015/12/26 15:06:00
--  

mdb文件就是帮助里面的那个身份证的mdb

 

Select Case e.DataCol.name
    Case "身份证号码"
        If e.DataRow.IsNull("身份证号码") Then
            e.DataRow("籍贯") = Nothing
            e.DataRow("性别") = Nothing
            e.DataRow("出生日期") = Nothing
            e.DataRow("年龄") = Nothing
        Else
            e.DataRow("性别") = ReadSex(e.DataRow("身份证号码"))
            Dim d As Date = ReadBirthDay(e.DataRow("身份证号码"))
            e.DataRow("年龄") = Date.Today.year - d.year
            e.DataRow("出生日期") = d
           
            Dim bm As String = e.DataRow("身份证号码").SubString(0,6)
            Dim cmd As New SQLCommand
            cmd.C
            cmd.CommandText = "SELECT DISTINCT 籍贯编码 FRO M {身份证籍贯编码} WHERE [籍贯编码] = \'" & bm & "\'"
            Dim dt As DataTable
            dt = cmd.ExecuteReader()
            If dt.DataRows.Count > 0 Then
                e.DataRow("籍贯") = dt.DataRows(0)("籍贯")
            End If
        End If
End Select


--  作者:yumo123
--  发布时间:2015/12/26 15:08:00
--  

 

 

 Dim dt As DataTable
dt = cmd.ExecuteReader()
If dt.DataRows.Count > 0 Then
e.DataRow("籍贯") = dt.DataRows(0)("籍贯")
End If

我原来这段是这么写 的

 

 Dim dt As DataTable
dt = cmd.ExecuteReader()
e.DataRow("籍贯") = dt.DataRow("籍贯")

这样写也是提示2个错误,您那样写 是帮助里面的那部分介绍的 我看的不是太懂 ,可以给我个帮助地址吗 我再重学下。谢谢

 


--  作者:Hyphen
--  发布时间:2015/12/26 15:21:00
--  

sql语句是籍贯编码,e.DataRow("籍贯") = dt.DataRows(0)("籍贯编码")


--  作者:yumo123
--  发布时间:2015/12/26 15:40:00
--  
应该不是这个问题  还是错误提示  我添加了附件 麻烦您看下 谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.rar


--  作者:Hyphen
--  发布时间:2015/12/26 16:54:00
--  
            ......
Dim bm As String = dr("身份证号码").SubString(0,6)
            Dim cmd As New SQLCommand
            cmd.C
            cmd.CommandText = "SE LECT DISTINCT 籍贯 FROM {身份证籍贯编码} WH ERE [籍贯编码] = " & bm
            Dim dt As DataTable
            dt = cmd.ExecuteReader()
            If dt.DataRows.Count > 0 Then
                dr("籍贯") = dt.DataRows(0)("籍贯")
            End If

--  作者:yumo123
--  发布时间:2015/12/26 17:56:00
--  

这样写还是错误提示啊

          Dim bm As String = e.DataRow("身份证号码").SubString(0,6)
            Dim cmd As New SQLCommand
            cmd.CommandText = "SELECT DISTINCT 籍贯 FRO M {身份证籍贯编码} WHERE [籍贯编码] = " & bm
            Dim dt As DataTable
            dt = cmd.ExecuteReader()
            If dt.DataRows.Count > 0 Then
               e.DataRow("籍贯") = dt.DataRows(0)("籍贯")
            End If

提示

错误所在事件:
详细错误信息:
Microsoft Jet 数据库引擎找不到输入表或查询 \'~TMPCLP身份证籍贯编码\'。 确定它是否存在,以及它的名称的拼写是否正确。

怎么突然出现了\'~TMPCLP身份证籍贯编码\' 这个表