我创建了(在最后阶段)一个需要数据库通信的ASP.NET网站,因此我们创建了WCF服务来连接数据库。如果有Select语句,那么该服务将返回DataTable。
服务工作正常,网站也运作良好
在API创建时,我不知道windows phone sdk不支持DataTable。
我读了一些Windows Phone SDK不支持DataTable的地方,我在Visual Studio中检查过,System.Data
命名空间中没有名为DataTable的类。
我是Windows Phone新手。
但是现在我们要创建一个WINDOWS PHONE APP,它也和Website一样,所以我们想要使用现有的API(WCF服务)。
有没有办法完成这项任务。 most of the methods return type is DataTable
。
我们不想创建两个API(意味着服务)。我该怎么办?
如何创建适用于Windows Phone和网站的服务。
我们已准备好更改API的更改并根据准备更新网站了吗?
感谢
答案 0 :(得分:1)
刚刚更改了API以返回Stream
而不是DataTable
System.IO.StringWriter reader = new System.IO.StringWriter();
dt.WriteXml(reader, XmlWriteMode.WriteSchema);//dt is datatable
return reader;
在网站中进行小的微小更改,阅读流并将其分配给datatable
StringReader xmlReader = new StringReader(stream);
DataTable dt = new DataTable();
dt.ReadXml(xmlReader);
这种方法不可取(这是我的第一个Web服务应用程序),我建议使用JSON / XML响应(返回DTOs
)而不是返回DataTable
..
以下链接可能会让您朝着正确的方向前进。
http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide http://mono.servicestack.net/ServiceStack.Hello/
答案 1 :(得分:0)
不确定为什么使用数据表。你的意思是数据集吗?
它们都是XML的全部内容。尝试解析它们。尝试这样的事情:
var resultNewDataSet = XElement.Parse(xmlContent);
var result = resultNewDataSet.Descendants("Table")
.Select(t => new
{
aaa = t.Descendants("aaa").First().Value,
bbb = t.Descendants("bbb").First().Value
});
foreach (var res in result)
{
System.Diagnostics.Debug.WriteLine("aaa: " + res.aaa + " / bbb: " + res.bbb);
}