以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]第 1 行: '=' 附近有语法错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=123432)

--  作者:samlzc
--  发布时间:2018/8/14 16:34:00
--  [求助]第 1 行: '=' 附近有语法错误
.NET Framework 版本:2.0.50727.8784
Foxtable 版本:2018.7.28.1
错误所在事件:
详细错误信息:
第 1 行: \'=\' 附近有语法错误。

表格通过服务器同步数据 会弹出这个错误。
但是不知道具体是事件出现问题。请问如何解决

--  作者:有点甜
--  发布时间:2018/8/14 16:53:00
--  

你执行了什么代码?贴出来看看。

 

 


--  作者:samlzc
--  发布时间:2018/8/14 18:22:00
--  
我也不清楚现在是什么代码有问题, 因为是这几天突然会出现。
然后我用备份文件,从新做了一次更新,但还是会出现这种情况。
错误所在事件:
详细错误信息:
怎么会不显示在哪里错误呢


--  作者:有点甜
--  发布时间:2018/8/14 18:26:00
--  
执行了什么操作,操作会触发什么代码?
--  作者:samlzc
--  发布时间:2018/9/4 18:50:00
--  
Dim msg As String = e.Message
Dim pts() As String = msg.Split("#")
Dim a As String = pts(2)
If msg.StartsWith("U#") Then \'表示修改了某行
    \'Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        MessageBox.show(1)
        
        Dim dr As DataRow = DataTables(pts(1)).Find("[_Identify] = " & a )
        MessageBox.show(2)
        If dr IsNot Nothing  Then
            dr.Load()
            MessageBox.show(3)
        End If
    End If


现在发现错误出现在  执行到 2 和 3 之间

请问是什么问题

--  作者:有点蓝
--  发布时间:2018/9/4 20:28:00
--  
应该不是dr.Load()的问题。这个事件完整的代码贴出来看看
--  作者:samlzc
--  发布时间:2018/9/4 21:21:00
--  
审核.慧 2018-09-04 17:57:40     A#cbb#14466
审核.慧 2018-09-04 17:57:47     D#cbb#14466
审核.慧 2018-09-04 17:58:01     U#cbb#14463
审核.慧 2018-09-04 17:59:48     A#cbb#14467
审核.慧 2018-09-04 17:59:48     A#订单表#2375
审核.慧 2018-09-04 17:59:55     U#cbb#14467
审核.慧 2018-09-04 17:59:59     A#cbb#14468
审核.慧 2018-09-04 18:00:03     A#cbb#14469
审核.慧 2018-09-04 18:00:04     A#cbb#14470
审核.慧 2018-09-04 18:00:14     D#cbb#14470


以上是传输过来的生成的信息表

ReceivedMessage 事件
Dim drr As DataRow = DataTables("信息").AddNew
drr("发送者") = iif(e.UserName > "",e.UserName,"服务器")
drr("时间") = Date.Now()
drr("信息") = e.Message


Dim msg As String = e.Message
Dim pts() As String = msg.Split("#")
Dim a As String = pts(2)
If msg.StartsWith("U#") Then \'表示修改了某行
    \'Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        MessageBox.show(1)
        
        Dim dr As DataRow = DataTables(pts(1)).Find("[_Identify] = " & a )
        MessageBox.show(2)
        If dr IsNot Nothing  Then
            dr.Load()
            MessageBox.show(3)
        End If
    End If
ElseIf msg.StartsWith("A#") Then \'表示增加了行
    \'Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        MessageBox.show(4)
        DataTables(pts(1)).AppendLoad("[_Identify] =" & a) \'追载新增加的行.
        MessageBox.show(5)
    End If
ElseIf msg.StartsWith("D#") Then \'表示删除了行
    \'Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        DataTables(pts(1)).RemoveFor("[_Identify] =" & a) \'移除行
    End If
End If

结果执行 
1 正常
2  正常
弹出错误窗口:第 1 行: \'=\' 附近有语法错误    关闭后
3 正常
[此贴子已经被作者于2018/9/4 21:23:34编辑过]

--  作者:有点蓝
--  发布时间:2018/9/4 21:46:00
--  
这样测试看看

Dim drr As DataRow = DataTables("信息").AddNew
drr("发送者") = iif(e.UserName > "",e.UserName,"服务器")
drr("时间") = Date.Now()
drr("信息") = e.Message


Dim msg As String = e.Message
Dim pts() As String = msg.Split("#")
Dim a As String = pts(2)
If msg.StartsWith("U#") Then \'表示修改了某行
    \'Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        MessageBox.show(1)
        
        Dim dr As DataRow = DataTables(pts(1)).Find("[_Identify] = " & a )
        MessageBox.show(2)
        If dr IsNot Nothing  Then
            dr.Load()
        End If
        MessageBox.show(3)
    End If
ElseIf msg.StartsWith("A#") Then \'表示增加了行
    \'Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        MessageBox.show(4)
        DataTables(pts(1)).RemoveFor("[_Identify] =" & a)
        DataTables(pts(1)).AppendLoad("[_Identify] =" & a) \'追载新增加的行.
        MessageBox.show(5)
    End If
ElseIf msg.StartsWith("D#") Then \'表示删除了行
    \'Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        DataTables(pts(1)).RemoveFor("[_Identify] =" & a) \'移除行
    End If
End If


--  作者:samlzc
--  发布时间:2018/9/5 9:51:00
--  
这样测试后,新增行的追载是无问题的
但是修改就还是一样 
执行
1
2
出现错误  点击关闭
3

而且修改的内容没有更新   dr.load() 应该没运行

--  作者:有点甜
--  发布时间:2018/9/5 10:02:00
--  

回复9楼,是不是执行 DataTables("xxx").Load 都会报错?

 

如果是,去看看表格的afterLoad事件、currentChanged事件代码。