2013-08-16 4 views
5

Da ich nicht so erfahren in Windows Phone 8 Entwicklung bin würde ich gerne diskutieren/fragen, was ist der beste Weg, um meine Windows Phone 8 zu Sql-Server Datenbank zu verbinden. Ich habe versucht, über das Internet zu suchen und fand nur wenige Anleitungen, die für mich nicht funktionierten Linq-zu-Sql mit WebService. This ist, wo ich versagt habe.Verbinden von Windows Phone 8 mit Sql Server

Zuerst möchte ich Daten anzeigen - das ist am wichtigsten, ich muss sie noch nicht bearbeiten. Aber in Zukunft ist es unvermeidlich.

Wenn die Bearbeitung funktionieren würde, muss ich sie direkt auf Sql Server bearbeiten, mit dem ich verbunden bin. Ich überprüfte auch Sql Server Compact Anleitung, aber das kann nur funktionieren unter CE 4.0 (Beim Exportieren von Daten von SQL Server auf SQL Compact), die Windows Phone 8 nicht unterstützt. Aber selbst wenn es funktionieren würde, kopiere einfach die SQL Server-Datenbank auf Sql Compact und arbeite nicht mit Daten direkt auf Sql Server (was verständlich ist, weil es Sql Server Compact ist).

So wie ich war tief, den einzigen Weg zu suchen, die unter Verwendung von WebService ich auf YouTube einig Schritt-für-Schritt-Anleitungen folgen zu tun, aber wie ich schon erwähnt, das Problem war mit displaying data als der Führer mich ListBox zu verwenden geführt, weil Es war für Windows Phone 7.1 und in Windows Phone 8 ist nur LongListSelector.

Ich fand auch Frage Connect Windows Phone and Windows 8 apps to SQL Server, die für mich leise hilfreich war.

Ich denke, ich brauche einige Schritt-für-Schritt-Anleitung How-To. Also würde ich Sie gerne fragen, ob es eine Schritt-für-Schritt-Anleitung gibt, wie man WP8 und Sql Server verbindet? Wenn jemand diese Art wäre und meinen Code here bearbeiten würde, damit es funktioniert.

Vielen Dank für Ihre Zeit lesen diese und Antworten/Kommentare.

M.S.

+1

AFAIK, die kurze Antwort ist "es ist nichts in das Framework integriert, um ein 'Telefon mit einem SQL-Server zu verbinden"; Sie können über WCF gehen, und LINQ-to-SQL kann dabei helfen - aber nicht eine direkte Verbindung API. Du könntest natürlich deinen eigenen TDS-Leser schreiben ... –

+0

@MarcGravell Danke für deinen Kommentar, ich dachte, das wäre der beste Weg. Dies sollte auch Update/Einfügen/Löschen von Daten auf Sql Server richtig unterstützen? Darf ich Sie fragen, ob Sie ein bisschen Freizeit haben, um meinen Code hier schnell zu lesen? http://StackOverflow.com/questions/18254295/longlistselector-on-wp8-linq-to-sql-binding-issue Ich versuchte dort WCF-Verbindung zu machen, aber ich konnte nicht in LongListSelector Daten anzeigen. Ich würde das sehr schätzen. Danke nochmal. – Marek

Antwort

6

Nun, Ihr Ziel zu erreichen, ich tun würde:

  1. Erstellen Sie eine REST-Webservice mit ASP.NET Web API (http://www.asp.net/web-api), die Objekte zurückgibt (die Objekte werden JSon automatisch übersetzt). Zum Beispiel:

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

    Controller für sie:

    public class TestController : ApiController 
    { 
        [HttpGet] 
        public MyObject Example() { 
        return new MyObject() { Content = "Hello World!" }; 
        } 
    } 
    
  2. einen HTTP-Client in Ihrem Gewinn Telefonprojekt verwenden:

    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!" 
        } 
        } 
    } 
    

Sicher, dass Sie viel komplexere Objekte erstellen welches (de) serialisiert wird. Sehen Sie sich einfach die Web-API-Tutorials an.

Innerhalb Ihres Webservice können Sie jetzt auf jede beliebige Datenbank zugreifen.

Bearbeiten Wenn Sie eine detailliertere Antwort benötigen, lassen Sie mich einen Kommentar.

+0

Vielen Dank für Ihre Antwort, Entschuldigung für die späte Antwort, aber das ist etwas anderes, was ich hier erreichen wollte: http://StackOverflow.com/Questions/18254295/longlistselector-on-wp8-linq-to-sql-binding - Ich habe schon alles gedacht, was ich dachte, aber nichts zeigte, würden Sie bitte einen Blick dorthin werfen? – Marek

+1

@Marek Ich habe mir deinen anderen Post angesehen. Wenn ich Zeit habe, werde ich die Antwort in den anderen Fragen posten, da es hier nicht hingehört. Aber ich hoffe, ich könnte dir helfen, die Frage zu beantworten, die du hier hast. –