Foxtable(狐表)用户栏目专家坐堂 → 怎么连接MYSQL数据库,操作?


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

主题:怎么连接MYSQL数据库,操作?

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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 15:24:00 [只看该作者]

窗口表控件绑定数据库的表后,再去设置绑定的列,下面代码我测试没有问题

Dim db = HySql.DataBaseFactory.CreateDatabase("acc01")
Dim Sql = "select * from 表D"
Dim dt As system.data.DataTable = db.ExecuteDataSet(Sql).Tables(0)
dt.TableName = "表D"
Dim t As Table = e.Form.Controls("Table1").Table
t.datasource = dt
t.AllowEdit = True
e.Form.Controls("TextBox1").BindingField = "窗口1_Table1.第一列"

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


加好友 发短信
等级:五尾狐 帖子:1143 积分:7546 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/4/7 16:04:00 [只看该作者]

'4、窗口的AfterLoad事件设为:

Dim t2 As Table = Tables("MYSQL-01_Table1")
'With Tables("tb_sell_main")
With Tables("MYSQL-01_Table1")
    
    If .Current Is Nothing Then
        t2.Filter = "False"
    Else
        t2.Filter = "sellID = " & .Current("sellID")
    End If
End With



'5、关闭窗口设计器,回到产品表,打开表属性设置窗口,将其表全局CurrentChanged事件代码设为:

If Forms("MYSQL-01").Opened() Then'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("MYSQL-01_Table1")
'    With Tables("tb_sell_main")
        With Tables("MYSQL-01_Table1")
            
            If .Current Is Nothing Then
                t.Filter = "False"
            Else
                t.Filter = "sellID = " & .Current("sellID")
            End If
        End With
    End If

模拟关联,执行报错

图片点击可在新窗口打开查看此主题相关图片如下:mysql-关联.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/7 16:11:00 [只看该作者]


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


加好友 发短信
等级:五尾狐 帖子:1143 积分:7546 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/4/7 16:22:00 [只看该作者]

8、将订单表的DataColChanged事件代码设置为:

Select Case e.DataCol.Name
    Case "产品编号"
        Dim pr As DataRow = e.DataRow.GetParentRow("产品")
        If pr IsNot Nothing Then
            e.DataRow("单价") = pr("单价")
        End 
If

End
 Select

这样在订单表输入产品编号,会自动从产品表中找出对应的产品,然后取其单价填入到订单表的单价列中。

9、将产品表的DataColChanged事件代码设置为:

If e.DataCol.Name = "单价" Then '更新未确认订单的单价
    Dim drs As List(of DataRow)
    drs = e.DataRow.GetChildRows("订单")
    
For Each dr As DataRow In drs
        
If dr("确认") = False Then
            dr("单价") = e.DataRow("单价")
        End If
    
Next

End
 If

这样在产品表修改某产品的单价,系统会找出订购此产品的全部订单,然后并将未确认订单的单价更新为新的单价。


MYSQL没有这二个表的属性,DataColChanged事件,直接引用肯是错,如果要写在全局件怎么改?

[此贴子已经被作者于2023/4/7 16:40:15编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1143 积分:7546 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/4/20 10:39:00 [只看该作者]

19楼,字段如绑窗口上的控件,表用SQLTable,
用下面代码,报错,找不到MYSQL001_Table1
Forms("MYSQL001_Table1").Controls("TextBox1").BindingField = "采购单号"
Forms("MYSQL001_Table1").Controls("TextBox2").BindingField = "供方"
Forms("MYSQL001_Table1").Controls("TextBox3").BindingField = "订单属性"

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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/20 10:46:00 [只看该作者]


 回到顶部
总数 36 上一页 1 2 3 4