Foxtable(狐表)用户栏目专家坐堂 → 检测表名並列于表里


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

主题:检测表名並列于表里

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


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
检测表名並列于表里  发帖心情 Post By:2013/8/20 1:04:00 [只看该作者]

想做的是,历遍所有表

然后把表名,列于系统库,名为"表名"的列里

 

我只想到这样做,看看有沒有更简洁的方法,

 

Dim dtn As String  '集合表名数目
Dim dtr As Integer = 0 '表行递增
Dim n As Integer = Tables("系统库").Rows.Count '获得表的总行数
MessageBox.Show( " T1表行数 " & n )
For Each dt As DataTable In DataTables
    If dtn Is Nothing Then
        dtn = 0
    Else
        dtn = dtn + 1
    End If
   
Next
MessageBox.Show( "表数 : " & dtn)
If n < dtn Then
    Dim R As Integer
    R = dtn - n
    MessageBox.Show(R)
    DataTables("系统库").AddNew( R +1 )
    MessageBox.Show("加行完成")
   
End If

For Each dt As DataTable In DataTables
    Tables("系统库")( dtr,"表名") = dt.Name
    dtr = dtr + 1
Next

 

 

 

这样,如果系统库的行超出表的数目,都能自动加行.

求各老師指引出更好的方法

 

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-8-20 1:05:11编辑过]

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


加好友 发短信
等级:二尾狐 帖子:504 积分:3492 威望:0 精华:3 注册:2012/11/13 15:49:00
  发帖心情 Post By:2013/8/20 2:29:00 [只看该作者]

系统库的结构不合理

 

建议使用,项目-值的方式来建表

 

这样的话,代码如下:

 

For Each dt As DataTable In DataTables
    Dim dr As DataRow =DataTables("系统库").find("项目='表名' and 值 ='" & dt.name & "'")
    If dr Is Nothing Then
       dr = DataTables("系统库").addnew
       dr("项目")="表名"
       dr("值")=dt.name
    End If
Next
DataTables("系统库").save


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


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2013/8/20 7:30:00 [只看该作者]

好的,这个只是实习用的,我再建一个表來测试

因为想到很多情況都需要历遍然后列出

所以找了这个例子來做练习


 回到顶部