Foxtable(狐表)用户栏目专家坐堂 → [求助]引用中的DataTable类型


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

主题:[求助]引用中的DataTable类型

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


加好友 发短信
等级:婴狐 帖子:4 积分:127 威望:0 精华:0 注册:2011/12/8 8:52:00
[求助]引用中的DataTable类型  发帖心情 Post By:2011/12/12 18:26:00 [只看该作者]

If e.DataCol.Name = "回路代码"Then '发生变化的是产品编号吗?
    '在产品表找出该产品
    Dim dr As DataRow       
    Select Case e.DataRow("回路类型")
        Case "电动机"
            dr = DataTables("电动机").Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )
        Case "馈线"
             dr = DataTables("馈线").Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )
    End Select
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("属性1")= dr("属性1")
        e.DataRow("属性2")= dr("属性2")
    End If
End If

图片点击可在新窗口打开查看此主题相关图片如下:引用.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据引用.table
如图所示,需要在“回路类型”的数据表中查找“回路代码”,取相关数据,上面代码能够实现需要功能,但是需要查找的表如果很多就需要很多Case语句,能不能根据“回路类型”即数据表名用一句来实现。
dr = DataTables(e.DataRow("回路类型")).Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )
会报错,结果好像对的。

[此贴子已经被作者于2011-12-12 18:28:44编辑过]

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


加好友 发短信
等级:婴狐 帖子:4 积分:127 威望:0 精华:0 注册:2011/12/8 8:52:00
  发帖心情 Post By:2011/12/13 9:45:00 [只看该作者]

那位热心朋友帮帮忙,使用

dr = DataTables(e.DataRow("回路类型")).Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )

 

如果“回路类型”没有空行是对的,有空行运行会报错,增加空判断

If e.DataRow("回路类型") IsNot Nothing

dr = DataTables(e.DataRow("回路类型")).Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )

 

End If

运行时还是会报错


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/13 10:22:00 [只看该作者]

这样就不需要好多Case了:

 

If e.DataCol.Name = "回路代码"Then
    Dim dr As DataRow
    Dim nm As String = e.DataRow("回路类型")
    If DataTables.Contains(nm) Then
        dr = DataTables("电动机").Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )
    End If
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("属性1")= dr("属性1")
        e.DataRow("属性2")= dr("属性2")
    End If
End If

 

另外: 如果数据结构基本一样,没有必要分开这么多个表。


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


加好友 发短信
等级:婴狐 帖子:4 积分:127 威望:0 精华:0 注册:2011/12/8 8:52:00
  发帖心情 Post By:2011/12/13 10:49:00 [只看该作者]

谢谢狐狸爸爸

 回到顶部