2013-08-16 6 views
5

क्योंकि मैं विंडोज फोन 8 विकास में उस कुशल नहीं हूं, मैं चर्चा करना चाहता/पूछता हूं कि मेरे विंडोज फोन 8 को एसक्यूएल-सर्वर डेटाबेस से कनेक्ट करने का सबसे अच्छा तरीका है। मैंने इंटरनेट के माध्यम से खोज करने की कोशिश की और मुझे केवल कुछ गाइड मिले जो लिंक-टू-एसक्यूएलवेब सेवा का उपयोग करके काम नहीं किया। This वह जगह है जहां मैं असफल रहा।एसक्यूएल सर्वर से विंडोज फोन 8 कनेक्ट करना

सबसे पहले मैं डेटा प्रदर्शित करना चाहता हूं - यह सबसे महत्वपूर्ण है, मुझे अभी तक उन्हें संपादित करने की आवश्यकता नहीं है। लेकिन भविष्य में यह अपरिहार्य है।

यदि संपादन काम करेगा तो मुझे उन्हें सीधे SQL सर्वर पर संपादित करने की आवश्यकता है, जिसमें मैं कनेक्ट हूं। मैंने Sql Server Compact मार्गदर्शिका भी जांच की है, लेकिन यह केवल सीई 4.0 (एसक्यूएल सर्वर से एसक्यूएल कॉम्पैक्ट से डेटा निर्यात करते समय) के तहत काम कर सकती है, जो विंडोज फोन 8 का समर्थन नहीं करता है। लेकिन अगर यह काम करेगा तो एसक्यूएल कॉम्पैक्ट में एसक्यूएल सर्वर डेटाबेस की प्रतिलिपि बनाएँ और एसक्यूएल सर्वर पर सीधे डेटा के साथ काम नहीं करेगा (जो समझ में आता है क्योंकि यह एसक्यूएल सर्वर कॉम्पैक्ट है)।

तो जैसा कि मैं गहराई से कि WebService उपयोग कर रहा है मैं YouTube पर कुछ कदम-दर-कदम गाइड का पालन किया लेकिन जैसा कि मैंने पहले उल्लेख किया है, समस्या के रूप में गाइड मुझे ListBox का उपयोग कर, क्योंकि करने के लिए नेतृत्व displaying data के साथ था करने के लिए एक ही रास्ता खोज रहा था यह विंडोज फोन 7.1 के लिए था और विंडोज फोन 8 में केवल LongListSelector है।

मुझे प्रश्न Connect Windows Phone and Windows 8 apps to SQL Server भी मिला जो मेरे लिए चुप सहायक था।

मुझे लगता है कि मुझे कुछ चरण-दर-चरण मार्गदर्शिका की आवश्यकता है। इसलिए मैं आपसे पूछना चाहूंगा कि क्या WP8 और SQL सर्वर को कनेक्ट करने के लिए कोई चरण-दर-चरण मार्गदर्शिका है या नहीं? अगर कोई ऐसा काम करेगा और इसे बनाने के लिए मेरे कोड here को संपादित करेगा।

इसे पढ़ने और आपके उत्तर/टिप्पणियों को पढ़ने के लिए धन्यवाद।

एमएस

+1

AFAIK, संक्षिप्त उत्तर यह है कि "फोन को एसक्यूएल सर्वर से कनेक्ट करने के लिए ढांचे में कुछ भी नहीं बनाया गया है"; आप डब्ल्यूसीएफ के माध्यम से जा सकते हैं, और LINQ-to-SQL उसमें सहायता कर सकता है - लेकिन प्रत्यक्ष कनेक्शन API नहीं। आप निश्चित रूप से अपना खुद का टीडीएस रीडर/लेखक लिख सकते हैं ... –

+0

@MarcGravell आपकी टिप्पणी के लिए धन्यवाद, मैंने सोचा कि यह सबसे अच्छा तरीका होगा। यह एसक्यूएल सर्वर पर डेटा के अपडेट/सम्मिलित/हटाए जाने का भी समर्थन करना चाहिए? क्या मैं आपसे पूछ सकता हूं कि क्या आपके पास मेरे कोड पर त्वरित रूप से देखने के लिए थोड़ा खाली समय है? http://stackoverflow.com/questions/18254295/longlistselector-on-wp8-linq-to-sql-binding-issue मैंने डब्ल्यूसीएफ कनेक्शन बनाने के लिए वहां कोशिश की लेकिन मैं LongListSelector में डेटा प्रदर्शित करने में विफल रहा। मैं इतना सराहना करता हूं। फिर से धन्यवाद। – Marek

उत्तर

6

ठीक है, अपने लक्ष्य को प्राप्त करने, मुझे क्या करना होगा:

  1. ASP.NET वेब एपीआई (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!" 
        } 
        } 
    } 
    

सुनिश्चित करें कि आप और अधिक जटिल वस्तुओं बना सकते हैं जो (डी) धारावाहिक होगा। बस वेब एपीआई ट्यूटोरियल पर एक नज़र डालें।

अपने webservice के भीतर अब आप अपने इच्छित डेटाबेस तक पहुंच सकते हैं।

संपादित करें यदि आपको अधिक विस्तृत उत्तर की आवश्यकता है, तो मुझे एक टिप्पणी छोड़ दें।

+0

आपके उत्तर के लिए धन्यवाद, देर से जवाब देने के लिए खेद है, लेकिन यह कुछ और तरीका है जिसे मैं यहां प्राप्त करने की कोशिश कर रहा था: http://stackoverflow.com/questions/18254295/longlistselector-on-wp8-linq-to-sql- बाइंडिंग -इस्यू मैंने पहले से ही सब कुछ सोचा है लेकिन कुछ भी प्रदर्शित नहीं हुआ है, क्या आप वहां एक नज़र डालेंगे? – Marek

+1

@Marek मैंने आपकी दूसरी पोस्ट पर एक नज़र डाली। यदि मेरे पास समय है, तो मैं अन्य प्रश्नों में उत्तर पोस्ट करूंगा, क्योंकि यह यहां से संबंधित नहीं है। लेकिन मुझे उम्मीद है कि मैं आपके यहां मौजूद प्रश्न का उत्तर देने में आपकी सहायता कर सकता हूं। –

संबंधित मुद्दे