.net webservice中如果dataset中有null值会导致生成的XML缺少字段节点
来源:互联网 发布:社交软件英语翻译 编辑:程序博客网 时间:2024/04/30 15:08
在做android&webservice项目的时候碰到ksoap2解析XML文件因缺少字段导致报错的问题.后来发现问题是由webservice中dataset里该字段有null值导致的。因为dataset中有null值,所以生成XML时,相应的字段就不能生成相应的节点。在无法联系酷哥的情况下,只能去请教度娘了。不知道是用android连dot net webservice方式少有人用,还是这种问题太简单,网上很少有相关的文章。找了很久,解决方法大致有两种,一种是修改XML的生成规则,另一种是自己写代码把null值去掉。
第一种方法可参考http://blog.csdn.net/yusewuhen/article/details/44150833,我个人觉得这种方法继承性不好,所以不推荐。我用第二种方法,自己写方法去null值去掉。刚开始我是在select时,就用isnull(column,”)来处理,但在字段多的情况下,这种方法太累人。后来我还是写了个方法来处理。代码如下:
[WebMethod] public DataSet KillDatasetNull(DataSet adt_dt) { if (adt_dt.Tables[0].Rows.Count > 0) { for (int i = 0; i < adt_dt.Tables[0].Rows.Count; i++) { for (int j = 0; j < adt_dt.Tables[0].Columns.Count; j++) { adt_dt.Tables[0].Rows[i][j] = adt_dt.Tables[0].Rows[i][j].ToString(); if (adt_dt.Tables[0].Rows[i][j].Equals("")) { adt_dt.Tables[0].Rows[i][j] = " "; } } } adt_dt.AcceptChanges(); return adt_dt; } else { return null; } }
注意:adt_dt.AcceptChanges(); 这行不能少,如果没有这行,生成XML时就会出现两部分数据,一部分是修改前的before数据,一部分是修改后的modify数据,但ID是一样的。这样android解析时会提示java.lang.runtimeexception: double id。如下图:
0 0
- .net webservice中如果dataset中有null值会导致生成的XML缺少字段节点
- CXF webService 对象属性值为null或空时生成xml缺少该字段节点 解决办法
- C#中属性实为方法,如果类中只是定义了属性,则编译器会自动生成相应的字段
- 得到DataSet 中字段的值
- sql 缺少注释的结尾标记 '*/'。 '*' 附近有语法错误。 在注释中包含 GO 命令会生成一个错误信息
- WebService处理.net中Dataset问题解决办法
- 在DataSet中处理字段中的NULL问题入门6
- ASP.NET中把xml转为dataset与xml字符串转为dataset及dataset转为xml的代码
- 文章标题 Asp.net中 Directory.Delete(path,ture)会导致Session["User"]==null
- ASP.NET中生成rss.xml你会吗?
- cxf WebService中如何设定xml中返回值的节点信息
- C#中ADO.NET的DataSet读写XML文档
- .NET中XML与DataSet相互转换
- Sql Server中批量更新某一已经有值的字段为Null(实例)!
- 字段中有null值查询不走索引的问题解决
- xml中如何读取一个子节点有特定值的节点
- Gson使用中,如果有的字段网络上返回的数据可能为null的处理
- Hibernate HQL的条件中如果in包含太多的参数会导致堆栈溢出
- CSS边框样式
- java websocket 实现
- sift算子
- 1055 集体照
- 层叠上下文 z-index
- .net webservice中如果dataset中有null值会导致生成的XML缺少字段节点
- Java 学习笔记(0x0E) 异常处理
- 种草&&拔草.......人生就是酱紫
- 一、zookeeper源码阅读建议
- 将项目添加到git上的步骤
- http协议请求行,状态行,响应状态行
- CVTE校招嵌入式经历
- webstorm 11
- Java服务端推送和web端推送——GoEasy免费推送服务