Foxtable(狐表)用户栏目专家坐堂 → SQL数据重新排序问题


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

主题:SQL数据重新排序问题

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


加好友 发短信
等级:一尾狐 帖子:480 积分:3832 威望:0 精华:0 注册:2011/5/31 15:45:00
SQL数据重新排序问题  发帖心情 Post By:2015/6/12 19:19:00 [只看该作者]

有数据如下

列名:列1,列2,列3,列4,列5

行1值:a1,a2,a3,a4,a5

行2值:b1,b2,b3,b4,b5

行3值:c1,c2,c3,c4,c5

用SQL语句采用事务方式重新进行排序,但结果不对

Di m c n1 A s C onnection = Con nections("数据源")   '获取数据库连接
Di m c n A s New S ystem.D ata.O leDb.O leDbConnection(cn1.ConnectionString)
Di m c m d A s new S ystem.Da t a.OleDb.O leD bCommand
c n.O pe n()
cmd.C onnection = c n
t ry
    cm d.T ransaction = cn.B eginTransaction()   '开始事务

        Di m cm d1 a s Ne w SQL Command

        cmd1.Co mmand Text = "Up date {表A} Set [列1]='b1' Where [列1] = 'a1'"

        cmd1.E xecuteNonQuery()

        Di m cm d2 a s Ne w SQL Command

        cmd2.C ommand Text = "Up date {表A} Set [列1]='c1' Where [列1] = 'b1'"

        cmd2.E xecuteNonQuery()

        Di m cm d3 a s Ne w SQ LCommand

        cmd3.C ommand Text = "Up date {表A} Set [列1]='a1' Where [列1] = 'c1'"

        cmd3.E xecu teNonQuery()
    cm d.T rans action.Commit() 

    cmd.D ispose()    
    cn.C lose()       
    Retu rn True
Ca tch ex As E xception
    cmd.T ransaction.Rollback()

    m sg box(ex.tostring)

    cm d.D ispose()  
    cn.Cl ose()      

    Ret urn False
E n d Try

 

怎样才能对数据列1重新排序?

按以上方法会产生列1中出现重复值而不是重新排序


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


加好友 发短信
等级:一尾狐 帖子:480 积分:3832 威望:0 精华:0 注册:2011/5/31 15:45:00
  发帖心情 Post By:2015/6/13 8:03:00 [只看该作者]

没人在呀?

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


加好友 发短信
等级:一尾狐 帖子:480 积分:3832 威望:0 精华:0 注册:2011/5/31 15:45:00
  发帖心情 Post By:2015/6/13 11:55:00 [只看该作者]

各位版主來救救

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


加好友 发短信
等级:一尾狐 帖子:480 积分:3832 威望:0 精华:0 注册:2011/5/31 15:45:00
  发帖心情 Post By:2015/6/13 13:37:00 [只看该作者]

沒人理我……

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/13 14:33:00 [只看该作者]

你想做什么.没看懂

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


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By:2015/6/13 14:34:00 [只看该作者]

你这不就是修改数据吗

和你说得排序没有关系

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


加好友 发短信
等级:一尾狐 帖子:480 积分:3832 威望:0 精华:0 注册:2011/5/31 15:45:00
  发帖心情 Post By:2015/6/13 16:31:00 [只看该作者]

就是对列1重新排序,其它数据不变,将所有列1的值等于a1的数据改为b1,将所有列1所有值等于b1的值改为c1,将所有列1值等于c1的值改为a1,就是列2,列3,列4其它列的所有数据不变,单单对列1的数据进行对调更改

        Di m cm d1 a s Ne w SQL Command

        cmd1.Co mmand Text = "Up date {表A} Set [列1]='b1' Where [列1] = 'a1'"

        cmd1.E xecuteNonQuery()

        Di m cm d2 a s Ne w SQL Command

        cmd2.C ommand Text = "Up date {表A} Set [列1]='c1' Where [列1] = 'b1'"

        cmd2.E xecuteNonQuery()

        Di m cm d3 a s Ne w SQ LCommand

        cmd3.C ommand Text = "Up date {表A} Set [列1]='a1' Where [列1] = 'c1'"

        cmd3.E xecu teNonQuery()


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


加好友 发短信
等级:一尾狐 帖子:480 积分:3832 威望:0 精华:0 注册:2011/5/31 15:45:00
  发帖心情 Post By:2015/6/13 16:35:00 [只看该作者]

现在产生的结果是,因为第一条命令已经将列1的值为a1的改成了b1,第二条命令将所有b1值改为了c1,第三条命令将所有c1值改为了a1,最后所有列1的值都变成了a1了,而不是对调
[此贴子已经被作者于2015/6/13 16:35:00编辑过]

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


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2015/6/14 9:53:00 [只看该作者]

       Di m cm d a s Ne w SQL Command

        cmd.Co mmand Text = "Up date {表A} Set [列1]='临时' Where [列1] = 'a1'"

        cmd.E xecuteNonQuery()

        cmd.C ommand Text = "Up date {表A} Set [列1]='a1' Where [列1] = 'b1'"

        cmd.E xecu teNonQuery()

         cmd.C ommand Text = "Up date {表A} Set [列1]='b1' Where [列1] = 'c1'"

        cmd.E xecuteNonQuery()

        cmd.Co mmand Text = "Up date {表A} Set [列1]='a1' Where [列1] = '临时'"

        cmd.E xecuteNonQuery()

[此贴子已经被作者于2015/6/14 9:57:10编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/14 10:56:00 [只看该作者]

 呃,避免循环很简单。

 

 a1 改成 aa11

 

 b1 改成 a1

 

 c1 改成 b1

 

 aa11 改成 c1


 回到顶部