正在将Windows Phone 8连接到Sql服务器

本文关键字:连接 Sql 服务器 Phone Windows | 更新日期: 2023-09-27 18:28:03

由于我不太熟悉Windows Phone 8的开发,我想讨论/询问将Windows Phone 8连接到Sql Server数据库的最佳方式是什么。。我试着在互联网上搜索,只找到了一些指南,这些指南对我使用WebServiceLinq到Sql不起作用。这就是我失败的地方。

首先,我想显示数据——这是最重要的,我还不需要编辑它们。但在未来,这是不可避免的。

如果编辑可以工作,我需要在我连接的Sql Server上直接编辑它们。我还查看了Sql Server Compact指南,但它只能在CE 4.0(将数据从Sql Server导出到Sql Compact时)下工作,而不支持Windows Phone 8。但是,即使它可以工作,它也只是将Sql服务器数据库复制到Sql Compact,而不直接在Sql server上处理数据(这是可以理解的,因为它是Sql server Compact)。

因此,当我深入搜索时,唯一的方法就是使用WebService。我在YouTube上遵循了一些循序渐进的指南,但正如我之前提到的,问题是显示数据,因为指南引导我使用ListBox,因为它适用于Windows Phone 7.1,而在Windows Phone 8中只有LongListSelector。

我还发现了将Windows Phone和Windows 8应用程序连接到SQL Server的问题,这对我很有帮助

我想我需要一些循序渐进的指导。所以我想问你,是否有关于如何连接WP8和Sql Server的分步指南?如果有人愿意在这里编辑我的代码以使其工作。

感谢您花时间阅读本文和回答/评论。

M.S.

正在将Windows Phone 8连接到Sql服务器

好吧,为了实现你的目标,我会做:

  1. 使用ASP.NET Web API构建REST Web服务(http://www.asp.net/web-api)返回对象(这些对象将自动转换为json)。例如:

    public class MyObject 
    {
      public string Content { get; set; }
    }
    

    控制器:

    public class TestController : ApiController
    {
      [HttpGet]
      public MyObject Example() {
        return new MyObject() { Content = "Hello World!" };
      }
    }
    
  2. 在您的获胜手机项目中使用HTTP客户端:

    HttpClient client = new HttpClient();
    client.BaseAddress = new Uri("http://mywebservice.com");
    client.DefaultRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    using (var result = await client.GetStreamAsync("test/example"))
    {
      var serializer = new JsonSerializer(); // this is json.net serializer
      using (var streamReader = new StreamReader(result)) {
        using (var jsonReader = new JsonTextReader(streamReader))
        {
          var obj = serializer.Deserialize<MyObject>(jsonReader);
          // you can access obj.Content now to get the content which was created by the webservice
          // in this example there will be "Hello World!"
        }
      }
    }
    

当然,您可以创建更复杂的对象,这些对象将被(反)序列化。只需看一下Web API教程。

在您的Web服务中,您现在可以访问任何您想要的数据库。

编辑如果您需要更详细的答案,请给我留言。