Foxtable(狐表)用户栏目专家坐堂 → SQLtable可以添加增加临时列吗


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

主题:SQLtable可以添加增加临时列吗

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/28 17:10:00 [显示全部帖子]

AfterLoad事件

 

Dim cmd As New SQLCommand
cmd.ConnectionName = "db"
Dim str = DataTables("窗口1_包材申请表").GetComboListString("商品id")
str = str.replace("|", "','")
cmd.CommandText = "SELECT * From {商品} Where [商品ID] in ('" & str & "')"
Dim dt As DataTable = cmd.ExecuteReader
DataTables("窗口1_包材申请表").DataCols.Add("名称", Gettype(String))
For Each dr As DataRow In DataTables("窗口1_包材申请表").Select("")
    Dim fdr As DataRow = dt.Find("商品id = '" & dr("商品id") & "'")
    If fdr IsNot Nothing Then
        dr("名称") = fdr("名称")
    End If
Next

[此贴子已经被作者于2017/8/28 17:10:33编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/3 11:41:00 [显示全部帖子]

如果是sqlTable,这样写

 

Tables("窗口1_包材申请表").fill("select *,(select 名称 from {商品} b where a.商品id=b.商品id) as 名称 from {包材申请表} as a", "db", False)

 

如果是查询表sqlquery,可以用连接查询,速度会快一些。

 

http://www.foxtable.com/webhelp/scr/0688.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/4 14:15:00 [显示全部帖子]

以下是引用wakai在2017/9/4 13:41:00的发言:
用SQLtable,希望输入商品ID,就会马上显示商品表中名称来,用Tables("窗口1_包材申请表").fill("select *,(select 名称 from {商品} b where a.商品id=b.商品id) as 名称 from {包材申请表} as a", "db", False),需要下次打开窗体才会显示出来

 

你在DataColChanged事件,查询和引用不就行了?

 

http://www.foxtable.com/webhelp/scr/1451.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/4 14:19:00 [显示全部帖子]

DataColChanged事件,代码

 

Select Case e.DataCol.name
    Case "商品id"
        Dim cmd As New SQLCommand
        cmd.ConnectionName = "db"
        cmd.CommandText = "SELECT 名称 From {商品} Where [商品ID] = '" & e.DataRow("商品id") & "'"
        e.DataRow("名称") = cmd.ExecuteScalar
End Select


 回到顶部