以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  重启项目  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161870)

--  作者:hongye
--  发布时间:2021/4/1 20:14:00
--  重启项目
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:项目,AfterOpenProject
详细错误信息:
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

Dim Result As DialogResult
Result = MessageBox.Show("需要重新启动程序以完成文件夹目录设置!", "提示", MessageBoxButtons.Ok, MessageBoxIcon.Question)
If Result = DialogResult.Ok Then
    Syscmd.Project.Open(ProjectFile)
End If

重启后为什么会出错

--  作者:有点蓝
--  发布时间:2021/4/1 20:20:00
--  
项目,AfterOpenProject完整代码发上来看看
--  作者:hongye
--  发布时间:2021/4/1 20:22:00
--  
Dim zw1 As WinForm.DropDownBox = e.form.Controls("DropBox1")
Dim cw1 As WinForm.DropDownBox = e.form.Controls("DropBox2")
Dim zw2 As WinForm.DropDownBox = e.form.Controls("DropBox3")
Dim cw2 As WinForm.DropDownBox = e.form.Controls("DropBox4")
Dim cb1 As WinForm.ComboBox = e.form.Controls("ComboBox1")
Dim cb2 As WinForm.ComboBox = e.form.Controls("ComboBox2")
Dim szw1 As String = zw1.text
Dim scw1 As String = cw1.text
Dim szw2 As String = zw2.text
Dim scw2 As String = cw2.text
Dim scb1 As String = cb1.text
Dim scb2 As String = cb2.text
Dim sa1 As String = "A01"
Dim sa2 As String = "A02"
Dim fsc As String = "开票数据"
Dim ssw As String = "文件夹设置"
Dim lst As List(Of String)
lst = Connections("SJ数据").GetTableNames
If lst.Contains(ssw) = False Then
    Dim Builder As New ADOXBuilder("SJ数据") \'要指定数据源名称
    Dim tbl As ADOXTable
    Builder.Open()
    tbl = Builder.NewTable("文件夹设置") \'创建表
    With tbl
        .AddColumn("执行编号" ,ADOXType.String, 50)
        .AddColumn("分类" ,ADOXType.String, 60)
        .AddColumn("主文件夹目录" ,ADOXType.String, 120)
        .AddColumn("次文件夹目录" ,ADOXType.String, 120)
        .AddColumn("所属企业" ,ADOXType.String, 120)
    End With
    Builder.AddTable(tbl, True, True) \'增加表
    Builder.Close()
    Dim cmd As new SQLCommand
    cmd.C
    If szw1 IsNot Nothing Then
        If scw1 IsNot Nothing Then
            cmd.CommandText = "Insert Into 文件夹设置 (执行编号, 分类, 主文件夹目录, 次文件夹目录, 所属企业) Values(?,?,?,?,?)"
            cmd.Parameters.Add("@执行编号","A01")
            cmd.Parameters.Add("@分类","开票数据")
            cmd.Parameters.Add("@主文件夹目录",szw1)
            cmd.Parameters.Add("@次文件夹目录",scw1)
            cmd.Parameters.Add("@所属企业",scb1)
        Else
            cmd.CommandText = "Insert Into 文件夹设置 (执行编号, 分类, 主文件夹目录, 次文件夹目录, 所属企业) Values(?,?,?,?)"
            cmd.Parameters.Add("@执行编号","A01")
            cmd.Parameters.Add("@分类","开票数据")
            cmd.Parameters.Add("@主文件夹目录",szw1)
            cmd.Parameters.Add("@所属企业",scb1)
        End If
    End If
    cmd.ExecuteNonQuery
    cmd.Parameters.Clear
    If szw1 IsNot Nothing Then
        If szw2 IsNot Nothing Then
            If scw2 IsNot Nothing Then
                cmd.CommandText = "Insert Into 文件夹设置 (执行编号, 分类, 主文件夹目录, 次文件夹目录, 所属企业) Values(?,?,?,?,?)"
                cmd.Parameters.Add("@执行编号","A02")
                cmd.Parameters.Add("@分类","开票数据")
                cmd.Parameters.Add("@主文件夹目录",szw2)
                cmd.Parameters.Add("@次文件夹目录",scw2)
                cmd.Parameters.Add("@所属企业",scb2)
            Else
                cmd.CommandText = "Insert Into 文件夹设置 (执行编号, 分类, 主文件夹目录, 次文件夹目录, 所属企业) Values(?,?,?,?)"
                cmd.Parameters.Add("@执行编号","A02")
                cmd.Parameters.Add("@分类","开票数据")
                cmd.Parameters.Add("@主文件夹目录",szw2)
                cmd.Parameters.Add("@所属企业",scb2)
            End If
        End If
    End If
    cmd.ExecuteNonQuery


--  作者:hongye
--  发布时间:2021/4/1 20:23:00
--  
Else
    Dim cmd As new SQLCommand
    Dim dt As DataTable
    cmd.C
    cmd.CommandText = "Select [_Identify],执行编号,分类,主文件夹目录,次文件夹目录,所属企业 fr om {文件夹设置} Where 执行编号 = \'" & sa1 & "\'and 分类 = \'" & fsc & "\'"
    dt = cmd.ExecuteReader(True) \'记得将参数设置为True
    Dim Values = cmd.ExecuteValues
    If Values.Count > 0 Then
        dt.ReplaceFor("主文件夹目录", zw1.text, "[执行编号] = \'" & sa1 & "\' And [分类] = \'" & fsc & "\'")
        dt.ReplaceFor("次文件夹目录", cw1.text, "[执行编号] = \'" & sa1 & "\' And [分类] = \'" & fsc & "\'")
        dt.ReplaceFor("所属企业", cb1.text, "[执行编号] = \'" & sa1 & "\' And [分类] = \'" & fsc & "\'")
        dt.Save()
        dt.Load()
    Else
        If szw1 IsNot Nothing Then
            If scw1 IsNot Nothing Then
                cmd.CommandText = "Insert Into 文件夹设置 (执行编号, 分类, 主文件夹目录, 次文件夹目录, 所属企业) Values(?,?,?,?,?)"
                cmd.Parameters.Add("@执行编号","A01")
                cmd.Parameters.Add("@分类","开票数据")
                cmd.Parameters.Add("@主文件夹目录",szw1)
                cmd.Parameters.Add("@次文件夹目录",scw1)
                cmd.Parameters.Add("@所属企业",scb1)
            Else
                cmd.CommandText = "Insert Into 文件夹设置 (执行编号, 分类, 主文件夹目录, 次文件夹目录, 所属企业) Values(?,?,?,?)"
                cmd.Parameters.Add("@执行编号","A01")
                cmd.Parameters.Add("@分类","开票数据")
                cmd.Parameters.Add("@主文件夹目录",szw1)
                cmd.Parameters.Add("@所属企业",scb1)
            End If
        End If
        cmd.ExecuteNonQuery
        cmd.Parameters.Clear
    End If
    cmd.CommandText = "Select [_Identify],执行编号,分类,主文件夹目录,次文件夹目录,所属企业 fr om {文件夹设置} Where 执行编号 = \'" & sa2 & "\'and 分类 = \'" & fsc & "\'"
    dt = cmd.ExecuteReader(True) \'记得将参数设置为True
    Dim Valuess = cmd.ExecuteValues
    If Valuess.Count > 0 Then
        dt.ReplaceFor("主文件夹目录", zw2.text, "[执行编号] = \'" & sa2 & "\' And [分类] = \'" & fsc & "\'")
        dt.ReplaceFor("次文件夹目录", cw2.text, "[执行编号] = \'" & sa2 & "\' And [分类] = \'" & fsc & "\'")
        dt.ReplaceFor("所属企业", cb2.text, "[执行编号] = \'" & sa2 & "\' And [分类] = \'" & fsc & "\'")
        dt.Save()
        dt.Load()
    Else
        If szw1 IsNot Nothing Then
            If szw2 IsNot Nothing Then
                If scw2 IsNot Nothing Then
                    cmd.CommandText = "Insert Into 文件夹设置 (执行编号, 分类, 主文件夹目录, 次文件夹目录, 所属企业) Values(?,?,?,?,?)"
                    cmd.Parameters.Add("@执行编号","A02")
                    cmd.Parameters.Add("@分类","开票数据")
                    cmd.Parameters.Add("@主文件夹目录",szw2)
                    cmd.Parameters.Add("@次文件夹目录",scw2)
                    cmd.Parameters.Add("@所属企业",scb2)
                Else
                    cmd.CommandText = "Insert Into 文件夹设置 (执行编号, 分类, 主文件夹目录, 次文件夹目录, 所属企业) Values(?,?,?,?)"
                    cmd.Parameters.Add("@执行编号","A02")
                    cmd.Parameters.Add("@分类","开票数据")
                    cmd.Parameters.Add("@主文件夹目录",szw2)
                    cmd.Parameters.Add("@所属企业",scb2)
                End If
            End If
        End If
        cmd.ExecuteNonQuery
    End If
End If
Dim Result As DialogResult
Result = MessageBox.Show("需要重新启动程序以完成文件夹目录设置!", "提示", MessageBoxButtons.Ok, MessageBoxIcon.Question)
If Result = DialogResult.Ok Then
    Syscmd.Project.Open(ProjectFile)
End If

--  作者:有点蓝
--  发布时间:2021/4/1 20:39:00
--  
不对,这个不可能是AfterOpenProject代码,这个事件不可能有e.form.Controls这种用法

如果是自己窗口按钮代码,试试
If Result = DialogResult.Ok Then
e.cancel=true
    Syscmd.Project.Open(ProjectFile)
End If

--  作者:bxkdhao
--  发布时间:2022/11/28 21:32:00
--  Syscmd.Project.Open(ProjectFile)
Syscmd.Project.Open(ProjectFile)
这个ProjectFile太帅了,大神怎样发现的,代码里没有这个提示呀。