Foxtable(狐表)用户栏目专家坐堂 → System.Boolean 报错


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

主题:System.Boolean 报错

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
System.Boolean 报错  发帖心情 Post By:2023/11/2 22:38:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:项目,HttpRequest
详细错误信息:
无法将类型为“System.Boolean”的对象强制转换为类型“Newtonsoft.Json.Linq.JToken”。

Case "griddata"
Dim dt As DataTable = DataTables("系统_菜单")
Dim arr As New JArray '数据列表数组
For i As Integer = 0 To dt.DataRows.Count - 1
Dim dr As DataRow = dt.DataRows(i)
arr.Add(New jobject) '给数组添加对象
For Each dc As DataCol In dt.DataCols
If dc.IsDate Then
arr(i)(dc.Name) = Format(dr(dc.Name), "yyyy-MM-dd")
Else If dc.IsBoolean Then
                arr(i)(dc.Name) = dr(dc.Name)
Else If dc.IsNumeric Then
                arr(i)(dc.Name) = val(dr(dc.Name))
Else
arr(i)(dc.Name) = dr(dc.Name).ToString()
End If
Next
Next
Dim obj As New JObject '数据对象
obj("code") = 0 '状态值必须返回
obj("data") = arr '数据列表
e.WriteString(CompressJson(obj)) '将对象值压缩返回给客户端
[此贴子已经被作者于2023/11/2 22:48:19编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

                Else If dc.IsBoolean Then
                arr(i)(dc.Name) = IIF(dr(dc.Name),true,false)

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2023/11/2 22:58:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:项目,HttpRequest
详细错误信息:
无法将类型为“System.Boolean”的对象强制转换为类型“Newtonsoft.Json.Linq.JToken”。

Select Case e.Path
    Case "griddata"
        '加载条件处理
        Dim filter As String = ""
        If e.Values.containskey("tj") Then
            filter = e.Values("tj")
        End If
        Dim dt As DataTable = DataTables("系统_菜单")
        dt.LoadFilter = filter
        '分页处理
        If e.Values.containskey("page") Then
            dt.LoadPage = e.Values("page") - 1
            dt.LoadTop = e.Values("limit")
        End If
        dt.Load()
        '生成json数据
        Dim arr As New JArray '数据列表数组
        For i As Integer = 0 To dt.DataRows.Count - 1
            Dim dr As DataRow = dt.DataRows(i)
            arr.Add(New jobject) '给数组添加对象
            For Each dc As DataCol In dt.DataCols
                If dc.IsDate Then
                    arr(i)(dc.Name) = Format(dr(dc.Name), "yyyy-MM-dd")
                Else If dc.IsBoolean Then
                arr(i)(dc.Name) = IIf(dr(dc.Name), True, False)
                Else If dc.IsNumeric Then
                arr(i)(dc.Name) = val(dr(dc.Name))
                Else
                    arr(i)(dc.Name) = dr(dc.Name).ToString()
                End If
            Next
        Next
        '返回数据
        Dim obj As New JObject
        obj("code") = 0
        obj("count") = val(dt.SQLCompute("Count(*)", filter))
        obj("data") = arr
        e.WriteString(CompressJson(obj)) '将对象值压缩返回给客户端
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

Else If dc.IsBoolean Then
If dr(dc.Name) Then
    arr(i)(dc.Name) = True
Else
    arr(i)(dc.Name) = False
End If

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2023/11/2 23:21:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:项目,HttpRequest
详细错误信息:
无法将类型为“System.Boolean”的对象强制转换为类型“Newtonsoft.Json.Linq.JToken”。


还是报错


Dim arr As New JArray '数据列表数组
        For i As Integer = 0 To dt.DataRows.Count - 1
            Dim dr As DataRow = dt.DataRows(i)
            arr.Add(New jobject) '给数组添加对象
            For Each dc As DataCol In dt.DataCols
                If dc.IsDate Then
                    arr(i)(dc.Name) = Format(dr(dc.Name), "yyyy-MM-dd") 
                Else If dc.IsBoolean Then
                If dr(dc.Name) Then
                    arr(i)(dc.Name) = True
                Else
                    arr(i)(dc.Name) = False
                End If
                Else If dc.IsNumeric Then
                arr(i)(dc.Name) = val(dr(dc.Name))
                Else
                    arr(i)(dc.Name) = dr(dc.Name).ToString()
                End If
            Next
        Next


图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20231102232256.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2023/11/2 23:23:15编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

我测试没有问题,还不行肯定不是这里的问题了

 回到顶部