以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教下这段代码问题在哪里?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54647)

--  作者:jsq96jg
--  发布时间:2014/8/1 11:30:00
--  请教下这段代码问题在哪里?

这段代码放在项目初始化属性中,数据源中表已经存在,但 DataTables.contains("用户登记表"仍显示为false


If DataTables.contains("用户登记表")=False Then

    Dim Builder As New ADOXBuilder("ABC") \'要指定数据源名称

    Dim tbl As ADOXTable

    Builder.Open()

    tbl = Builder.NewTable("用户登记表") \'创建表

    With tbl

        .AddColumn("用户姓名" ,ADOXType.String,5)

        .AddColumn("单位" ,ADOXType.String, 20)

        .AddColumn("密码" ,ADOXType.String, 6)

    End With

    Builder.AddTable(tbl, True, True) \'增加表

    Builder.Close()

    Syscmd.Project.Open(ProjectFile)

Else

    If DataTables("用户登记表").DataRows.count<=0 Then

        Dim dr As DataRow = DataTables("用户登记表").addnew()

        dr("单位")="默认单位"

        dr("用户姓名")="默认用户"

        dr("密码")="123"

    End If

End If


--  作者:有点甜
--  发布时间:2014/8/1 11:32:00
--  
 定义了以后,需要重新启动,才能生效。帮助最后有说明的。
--  作者:有点甜
--  发布时间:2014/8/1 11:35:00
--  
 测试了一下,代码没有问题。
--  作者:jsq96jg
--  发布时间:2014/8/1 15:08:00
--  
定义完我退出系统的,相当于重启了。

是不是放在“initialize"属性里的原因?我用messagebox.show(datatables.contains("用户登记表")),显示false,帮助里说这个时候datatable都已经加载,应该已经有了的呀

--  作者:Bin
--  发布时间:2014/8/1 15:11:00
--  
initialize  Datatable已经加载,但是这个表不是你新建的吗?  此时还没执行新建代码所以没有
--  作者:jsq96jg
--  发布时间:2014/8/1 15:13:00
--  
第一次启动没有表,我就新建表,可是重启后已经有表了,应该执行else后的代码检查表内数据
--  作者:jsq96jg
--  发布时间:2014/8/1 15:13:00
--  
第二次启动仍然显示没有表
--  作者:Bin
--  发布时间:2014/8/1 15:15:00
--  
上个例子看看
--  作者:jsq96jg
--  发布时间:2014/8/1 15:17:00
--  
这项目才开始呢,例子就这一段代码。
--  作者:jsq96jg
--  发布时间:2014/8/1 15:25:00
--  
奇怪,其他表都显示true,就新建的这张表显示false,为什么? 难道新建的表还有其他什么标记没加上?