以文本方式查看主题
- 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
--
应该不是这个问题 还是错误提示 我添加了附件 麻烦您看下 谢谢
|
-- 作者: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身份证籍贯编码\' 这个表
|