Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Windows Phone 8连接到Sql server_C#_Sql Server_Windows Phone 8 - Fatal编程技术网

C# 将Windows Phone 8连接到Sql server

C# 将Windows Phone 8连接到Sql server,c#,sql-server,windows-phone-8,C#,Sql Server,Windows Phone 8,由于我在Windows Phone 8开发方面没有那么熟练,我想讨论/询问将我的Windows Phone 8连接到Sql Server数据库的最佳方法是什么。我尝试在互联网上搜索,发现只有少数指南不适合我linqtosql使用WebService。这就是我失败的地方 首先,我想显示数据-这是最重要的,我还不需要编辑它们。但在未来,这是不可避免的 如果编辑有效,我需要直接在连接的Sql Server上编辑它们。我还检查了指南,但它只能在CE 4.0下工作(将数据从Sql Server导出到Sql

由于我在Windows Phone 8开发方面没有那么熟练,我想讨论/询问将我的Windows Phone 8连接到Sql Server数据库的最佳方法是什么。我尝试在互联网上搜索,发现只有少数指南不适合我linqtosql使用WebService。这就是我失败的地方

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

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

因此,当我深入搜索时,唯一的方法就是使用WebService,我遵循了上面的一些分步指南,但正如我前面提到的,问题在于,该指南引导我使用ListBox,因为它适用于Windows Phone 7.1,而在Windows Phone 8中,ListSelector仅为LongListSelector

我还发现这个问题对我很有帮助

我想我需要一些循序渐进的指导。因此,我想问您是否有关于如何连接WP8和Sql Server的分步指南?如果有人愿意这样做,请编辑我的代码使其正常工作

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


M.S.

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

  • 使用ASP.NET Web API()构建REST Web服务,该API返回对象(这些对象将自动转换为json)。例如:

    public class MyObject 
    {
      public string Content { get; set; }
    }
    
    it控制器:

    public class TestController : ApiController
    {
      [HttpGet]
      public MyObject Example() {
        return new MyObject() { Content = "Hello World!" };
      }
    }
    
  • 在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!"
        }
      }
    }
    
    HttpClient=newhttpclient();
    client.BaseAddress=新Uri(“http://mywebservice.com");
    client.DefaultRequest.Headers.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
    使用(var result=await client.GetStreamAsync(“测试/示例”))
    {
    var serializer=new JsonSerializer();//这是json.net序列化程序
    使用(var streamReader=新streamReader(结果)){
    使用(var jsonReader=newjsontextreader(streamReader))
    {
    var obj=serializer.Deserialize(jsonReader);
    //您现在可以访问obj.Content来获取由webservice创建的内容
    //在本例中,将出现“Hello World!”
    }
    }
    }
    
  • 当然,您可以创建更复杂的对象,这些对象将被(反)序列化。请看一下Web API教程

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


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

    好的,简短的回答是“框架中没有内置任何东西可以连接‘电话到sql server’”;您可以通过WCF,LINQtoSQL可以帮助您实现这一点,但不是直接连接API。你当然可以写你自己的TDS读者/作者…@MarcGravel谢谢你的评论,我认为这是最好的方式。这也应该支持更新/插入/删除Sql Server上的数据,对吗?请问您是否有时间快速查看我的代码?我尝试在那里建立WCF连接,但在LongListSelector中显示数据失败。我会非常感激的。再次感谢你。谢谢你的回答,很抱歉迟了回复,但这是我试图在这里实现的另一个目标:我已经把所有想法都装订好了,但没有显示任何内容,请你看一下好吗?@Marek我看了你的另一篇帖子。如果我有时间,我会把答案贴在其他问题上,因为它不属于这里。但我希望我能帮你回答你的问题。