将Windows Phone 8连接到Sql server

Mar*_*rek 5 c# sql-server windows-phone-8

由于我不熟悉Windows Phone 8开发,我想讨论/询问将Windows Phone 8连接到Sql-Server数据库的最佳方法是什么.我试图通过互联网进行搜索,发现只有少数指南对我使用WebService的Linq-to-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的分步指南?如果有人会这样,并在这里编辑我的代码以使其工作.

感谢您抽出宝贵时间阅读本文和答案/评论.

女士

Man*_*ber 6

那么,为了实现你的目标,我会这样做:

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

    public class MyObject 
    {
      public string Content { get; set; }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    控制器:

    public class TestController : ApiController
    {
      [HttpGet]
      public MyObject Example() {
        return new MyObject() { Content = "Hello World!" };
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在win phone项目中使用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!"
        }
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

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

在您的Web服务中,您现在可以访问所需的任何数据库.

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