以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- System.Boolean 报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188975) |
-- 作者:yifan3429 -- 发布时间:2023/11/2 22:38:00 -- System.Boolean 报错 .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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/11/2 22:41:00 -- Else If dc.IsBoolean Then arr(i)(dc.Name) = IIF(dr(dc.Name),true,false)
|
-- 作者:yifan3429 -- 发布时间: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 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间: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 [此贴子已经被作者于2023/11/2 23:23:15编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/11/3 8:31:00 -- 我测试没有问题,还不行肯定不是这里的问题了 |