在取两个表数据并转化为JSON格式的时候,情况如下:
表一:
代码:
表结构:
输出结果格式:
情况正常
表二:
代码:
表结构:
输出结果:
其中ID 没有带上引号,数据库字段类型都设置为了varchar。跟踪发现这个地方做了字段修正
但不知道为什么要进行修正?
看出来了,修正的时候,你的code as ID
刚好ID这个列存在,而且是int,被修正为int.
所以你的解决方法:
1:as xid 避开ID
2:对于Select之后的dt dt.Columns["ID"].SqlType= xx.NvarChar.手工调整类型,再转json.
------------为什么要修正-----------
因为语句复杂的时候,查出来的数据类型,并不一定是原表的数据类型。
但是为什么我操作S_Code表的时候同样的数据库中存在ID列,而并没有被修正?
但是在表二 ZD_HYFL同样的情况就被修正了呢?
@zquery:
不知道你的情况,不过都是一样的代码是不会有两种情况的。
除非你的条件不一样,走一下源码就知道了。
@路过秋天: 找到原因了。表一ID列本来就设置为varchar的,所以进行修正了后也是一样的。
你这id不是int么?难道撸多了看错了?
好吧,不确定是不是撸多了,你那个MAction是个什么?
这个ID我是通过 action.SetSelectColumns("VALUE as ID")的方式取的别名。数据库中对应的VAULUE字段是varchar的