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


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

主题:保存问题

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


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

 请加入msgbox定位出错位置。

 

 不会做,请实例发上来测试。


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望: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



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

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


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

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

代码放到命令窗口执行,然后把生成的sql拿到数据库执行,看是哪个sql有问题

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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/28 16:33:00 [只看该作者]

执行没有生成什么东西

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


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/10/28 17:18:00 [只看该作者]

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

上面的代码保存出错的时候再测试13楼的代码

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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望: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太久了,请老师帮研究一下


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望: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提取函数,上面代码就不会出问题,保存任何单元格内容都可以


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望: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)

 

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


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/28 19:57:00 [只看该作者]

按这个思路终于找到了

 

示例中有错哟

 

   Select Case _表格_字段类型表(str1)
                Case "数值"
                    'str =  dr(str1)

                    str = dr(str1) & ","

                Case "逻辑"

应改为第二句红色的就可以了,谢谢


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


加好友 发短信
等级:八尾狐 帖子:1936 积分:14844 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/10/30 13:27:00 [只看该作者]

同样的sql提取函数,作天可以,今天提示","附近有语法错误了呢

 


 回到顶部
总数 23 上一页 1 2 3 下一页