Foxtable(狐表)用户栏目专家坐堂 → 保存问题


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

主题:保存问题

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
保存问题  发帖心情 Post By:2017/10/26 13:38:00 [显示全部帖子]

Dim st1 As Date = Date.Now
Dim strlist As  List(Of String)  = Functions.Execute("sql提取函数",Tables("成绩"),"成绩","_Identify","[_Identify]","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_|考试室","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_|考试室",1)
Dim sql As String
Dim cmd As New SQLCommand
cmd.C
Dim Count As Integer = 0
try
    Connections("180.153.108.50").BeginTransaction
    For Each s As String In strlist
        cmd.CommandText = s
        Count += cmd.ExecuteNonQuery()
        output.show(s)
    Next
    Connections("180.153.108.50").Commit '提交事务,所有操作生效
Catch ex As Exception '如果出错
    msgbox(ex.message)
    Connections("180.153.108.50").Rollback() '回滚事务,撤销所有操作
End Try
Tables("成绩").DataTable.BaseTable.AcceptChanges()   '提交修改
MessageBox.Show("亲,我正在为节省您的每一秒钟努力,本次保存共耗时: " & (Date.Now - st1).TotalSeconds & "秒")
Tables("初中报名_table1").AllowEdit = False

 

 

.NET Framework 版本:2.0.50727.5477
Foxtable 版本:2017.8.19.1
错误所在事件:自定义函数sql提取函数
详细错误信息:
调用的目标发生了异常。
从类型“DBNull”到类型“String”的转换无效。
老师,请问保存加了红色的列就出现上面错误,不要就不提示,是什么原因?

 


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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/26 15:30:00 [显示全部帖子]

结果一样呢

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/26 16:22:00 [显示全部帖子]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:sql.txt


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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/26 21:00:00 [显示全部帖子]

还是不行,效果一样


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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/26 21:17:00 [显示全部帖子]

Dim strlist As List(Of String) = Functions.Execute("sql提取函数",Tables("成绩"),"成绩","_Identify","[_Identify]","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_|考试室","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_|考试室",1)

 

把这句要保存列只留红色“考试室”这列就没有问题,这是什么原因

 


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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/28 15:42:00 [显示全部帖子]

Dim st1 As Date = Date.Now
Dim strlist As  List(Of String)  = Functions.Execute("sql提取函数",Tables("成绩"),"成绩","_Identify","[_Identify]","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_",1)
Dim sql As String
Dim cmd As New SQLCommand
cmd.C
Dim Count As Integer = 0
try
    Connections("180.153.108.50").BeginTransaction
    For Each s As String In strlist
        cmd.CommandText = s
        Count += cmd.ExecuteNonQuery()
        output.show(s)
    Next
    Connections("180.153.108.50").Commit '提交事务,所有操作生效
Catch ex As Exception '如果出错
    msgbox(ex.message)
    Connections("180.153.108.50").Rollback() '回滚事务,撤销所有操作
End Try
Tables("成绩").DataTable.BaseTable.AcceptChanges()   '提交修改
MessageBox.Show("亲,我正在为节省您的每一秒钟努力,本次保存共耗时: " & (Date.Now - st1).TotalSeconds & "秒")
Tables("初中报名_table1").AllowEdit = False



经测试发现,当有单独某列单独修改了时,保存就出错,请问老师怎么办

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/28 16:33:00 [显示全部帖子]

执行没有生成什么东西

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/28 18:00:00 [显示全部帖子]



我又测试发现,新增,删除行保存都没问题,并且是如果修改了某列的值,字段列表值就只设这列就没问题,我想是不是sql提取函数中修改代码的原因,
如:Dim strlist As  List(Of String)  = Functions.Execute("sql提取函数",Tables("成绩"),"成绩","_Identify","[_Identify]","单位名称","单位名称",1),修改了单位名称,保存就可以,

但是这样的话
Dim strlist As  List(Of String)  = Functions.Execute("sql提取函数",Tables("成绩"),"成绩","_Identify","[_Identify]","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_",1)
修改了其中的某列的值保存就出错

sql提取函数读不懂,这个保存很现实,用save太久了,请老师帮研究一下


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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/28 19:21:00 [显示全部帖子]

Dim st1 As Date = Date.Now
Dim strlist As  List(Of String)  = Functions.Execute("sql提取函数",Tables("学生信息"),"学生信息","_Identify","[_Identify]","学校名称|学生姓名|学籍号|身份证件号|性别|民族|家庭住址|联系电话|班级|年级|政治面貌|健康状况|就读方式|邮政编码|综合素质|状态|户口性质|出生日期","学校名称|学生姓名|学籍号|身份证件号|性别|民族|家庭住址|联系电话|班级|年级|政治面貌|健康状况|就读方式|邮政编码|综合素质|状态|户口性质|出生日期",1)
Dim sql As String
Dim cmd As New SQLCommand
cmd.C
Dim Count As Integer = 0
try
    Connections("180.153.108.50").BeginTransaction
    For Each s As String In strlist
        cmd.CommandText = s
        Count += cmd.ExecuteNonQuery()
             Next
    Connections("180.153.108.50").Commit '提交事务,所有操作生效
Catch ex As Exception '如果出错
    msgbox(ex.message)
    Connections("180.153.108.50").Rollback() '回滚事务,撤销所有操作
End Try
Tables("学生信息").DataTable.BaseTable.AcceptChanges()   '提交修改
MessageBox.Show("亲,我正在为节省您的每一秒钟努力,本次保存共耗时: " & (Date.Now - st1).TotalSeconds & "秒")

 

 

另外,同样的sql提取函数,上面代码就不会出问题,保存任何单元格内容都可以


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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/28 19:51:00 [显示全部帖子]

Dim strlist As List(Of String) = Functions.Execute("sql提取函数",Tables("成绩"),"成绩","_Identify","[_Identify]","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_|考试室","单位名称|学校|年级代码|班级|姓名|学生ID|身份证件号|学籍号|班级全称|学段|考试名称|年级|类别|考号|学校班级|学校代码|生物_|地理_|考试室",1)

 

终于测试出直正的原因,不要“生物_”“地理_“这两个数值列修改某个列就没问题


 回到顶部
总数 13 1 2 下一页