Foxtable(狐表)用户栏目专家坐堂 → [求助]填充后行序混乱的问题


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

主题:[求助]填充后行序混乱的问题

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


加好友 发短信
等级:幼狐 帖子:176 积分:1535 威望:0 精华:0 注册:2010/8/23 14:57:00
[求助]填充后行序混乱的问题  发帖心情 Post By:2011/8/11 12:50:00 [只看该作者]

 窗口按钮写了段填充的代码:
DataTables("兼容型号自动转换").DeleteFor("[查找型号] Is Null")    '删除空行
Dim f As New Filler     
    f.SourceTable = DataTables("字符转换")
    f.SourceCols ="转换后字符,capacity,brand"
    f.datatable = DataTables("兼容型号自动转换")
    f.DataCols ="查找型号,容量,品牌"
    f.Fill()

现在的问题是:填充到另外一个表后,当前表中的行并不是按照行的顺序填充过去的,在另一个表中发生了混乱。请问,如何保持行序不变?

另外,当填充的行比较多,几百行时,程序速度就会很慢,貌似死了一样。填充完毕后才恢复正常。
[此贴子已经被作者于2011-8-11 12:59:04编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/11 14:23:00 [只看该作者]

自己编码填充,例如:

 

 

Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim
Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each
dr1 As DataRow In DataTables("表A").Select("条件表达式","排序列名")
   Dim
dr2 As DataRow = DataTables("表B").AddNew()
   For
i As Integer = 0 To Cols1.Length -1
      dr2(Cols2(i)) = dr1(Cols1(i
))
   Next
Next

 

 


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


加好友 发短信
等级:幼狐 帖子:176 积分:1535 威望:0 精华:0 注册:2010/8/23 14:57:00
  发帖心情 Post By:2011/8/12 13:18:00 [只看该作者]

以下是引用狐狸爸爸在2011-8-11 14:23:00的发言:

自己编码填充,例如:

 

 

Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim
Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each
dr1 As DataRow In DataTables("表A").Select("条件表达式","排序列名")
   Dim
dr2 As DataRow = DataTables("表B").AddNew()
   For
i As Integer = 0 To Cols1.Length -1
      dr2(Cols2(i)) = dr1(Cols1(i
))
   Next
Next



如果不使用这种方式,仍旧是用FILL命令,能否指定排序条件,比如按行号_Identify进行排列?

 

 


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


加好友 发短信
等级:幼狐 帖子:176 积分:1535 威望:0 精华:0 注册:2010/8/23 14:57:00
  发帖心情 Post By:2011/8/12 13:18:00 [只看该作者]

如果不使用这种方式,仍旧是用FILL命令,能否指定排序条件,比如按行号_Identify进行排列?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/8/12 13:39:00 [只看该作者]

以下是引用飞鱼在2011-8-12 13:18:00的发言:
如果不使用这种方式,仍旧是用FILL命令,能否指定排序条件,比如按行号进行_Identify排列?

可以,

Dim f As New Filler     
    f.SourceTable = DataTables("字符转换")
    f.SourceCols ="_Identify,转换后字符,capacity,brand"
    f.datatable = DataTables("兼容型号自动转换")
    f.DataCols ="_Identify,查找型号,容量,品牌"
    f.Fill()

 

但必须两个表都有_Identify列, 另外接受表已有了相同号的_Identify列时,不知道会不会有问题了???

 


 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/12 13:42:00 [只看该作者]

以下是引用飞鱼在2011-8-12 13:18:00的发言:
如果不使用这种方式,仍旧是用FILL命令,能否指定排序条件,比如按行号_Identify进行排列?

没办法,只能是自己编代码了


 回到顶部