如何把一个dataset或者dataTable转换成xml并返回呢?
conn.Open();
SqlCommand cmd = new SqlCommand("GetName", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", Name));
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
System.Data.DataSet ds = new System.Data.DataSet();
adapter.Fill(ds);
StringBuilder sb = new StringBuilder();
XmlSerializer oSerializer = new XmlSerializer(typeof(DataSet));
StringWriter sw = new StringWriter(sb);
oSerializer.Serialize(sw, ds);
returnValue = sb.ToString();
这样能return一个string,然后asp页面中在Dserializer成dataset,也很简单,不过现在的新要求是这个method直接返回一个xml,还得有scheme,这样只要在浏览器中输入web service的url,然后选择这个web method,就直接在当前浏览器中看接过了。
用DataSet.WriteXML? 好像只能写到当地文件。
[解决办法]
xml不就是string吗,不是很了解你的意思。
[解决办法]
DataSet.WriteXML提供很多overload
WriteXml(TextWriter)
WriteXml(Stream)
。。。
应该可以满足你的要求
另外还有WriteXmlSchema函数,可以输出Scheme,应该可以满足你的要求
也有很多overload
WriteXmlSchema(Stream)
WriteXmlSchema(TextWriter)
。。。
[解决办法]
DataSet就是XML,除非你想在网络上传递时进行压缩和解压。
[解决办法]
将dataTable或ds中的数据存放到对象数组中,用json转成传输的对象json数组,很方便的,什么语言都很方便解析,我们项目中对外的服务都是这么做的
[解决办法]
dataset.getxml()
[解决办法]
你可以在web service的方法里面序列化datatable,然后在项目里新建个页面在后台反序列化字符串,绑定repeater,还有用户直接去看webservice的?
[解决办法]
答案都在上面,楼主自己拣吧
[解决办法]
dataset.getxml()