2010-08-07 8 views
11

मुझे लगता है कि यह सवाल मिट्टी के पिज्जा शूटिंग की तरह है .. "खींचो ... बैंग!" .. गोली मार दी .. लेकिन फिर भी, यह विश्वास करने लायक है कि मैं विश्वास करता हूँ।एसक्यूएल 2008: जेएसओएन के रूप में डेटा पंक्तियों को वापस कर रहा है?

जे एस चौखटे आदि उपयोग JSON के इन दिनों बहुत सारे, और अच्छे कारण के लिए मुझे पता है। क्लासिक सवाल "डेटा को जेएसओएन में बदलने के लिए कहां है"।

मैं समझता हूं कि पाइपलाइन में किसी बिंदु पर, आपको डेटा को JSON में परिवर्तित करना होगा, डेटा एक्सेस लेयर (मैं JSON.NET पर देख रहा हूं) में हूं या मुझे .NET 4.x में विश्वास है। JSON के रूप में आउटपुट/क्रमबद्ध करने के तरीके।

तो सवाल यह है: यह वास्तव में एक बुरा विचार JSON के रूप में उत्पादन के लिए एक एसक्यूएल समारोह मनन करने के लिए है?

योग्यता: मैं समझता हूं कि 1000 पंक्तियों को आउटपुट करने की कोशिश करना एक अच्छा विचार नहीं है - असल में वास्तव में वेब ऐप्स के लिए वास्तव में एक अच्छा विचार नहीं है जब तक आपको वास्तव में नहीं करना पड़े। मेरी आवश्यकता के लिए, मुझे एक समय में संभवतः 100 पंक्तियों की आवश्यकता है ...

उत्तर

5

उत्तर वास्तव में है: यह पर निर्भर करता है।

यदि आपका आवेदन एक छोटे से एक है कि बहुत उपयोग प्राप्त नहीं होता है, तब तक हर तरह डेटाबेस में यह करना है। हालांकि, दिमाग में बात करने की बात यह है कि क्या होता है जब आपका आवेदन 10 महीने तक 12 महीने के समय में कई उपयोगकर्ताओं द्वारा उपयोग किया जा रहा है?

यदि यह आपके वेब कोड की बजाय आपके संग्रहीत प्रक्रियाओं में जेएसओएन एन्कोडिंग को कार्यान्वित करने के लिए त्वरित, सरल और आसान बनाता है और आपको अपना ऐप आउट और उपयोग करने की अनुमति देता है, तो यह स्पष्ट रूप से जाने का तरीका है। उस ने कहा, यह वास्तव में उन समाधानों के साथ "ठीक से" करने के लिए इतना अधिक काम नहीं करता है जो अन्य उत्तरों में सुझाए गए हैं।

इसका लंबा और छोटा यह समाधान है, जो आपके वर्तमान जरूरतों के अनुरूप सर्वोत्तम समाधान लेता है, जबकि भविष्य में इसे बदलने की आवश्यकता होने पर इसके प्रभाव के बारे में सोचने के दौरान।

1

अपनी मानक डेटा एक्सेस तकनीक का उपयोग करके इसे लोड करने के लिए बेहतर और फिर JSON में कनवर्ट करें। इसके बाद आप इसे .NET के साथ-साथ अपने क्लाइंट साइड जावास्क्रिप्ट में मानक ऑब्जेक्ट्स में भी उपयोग कर सकते हैं।

0

तो .net MVC आप अपने नियंत्रकों और उत्पादन एक JsonResult में अपने परिणामों को क्रमानुसार का उपयोग कर, वहाँ एक विधि Controller.Json() जो आपके लिए यह करता है। यदि वेबफॉर्म का उपयोग HTTP हैंडलर और जावास्क्रिप्टसेरियलाइज़र क्लास जाने का तरीका होगा।

2

यही कारण है कि [WebMethod] (WebMethodAttribute) मौजूद है।

2

बेस्ट कार्यक्रम का टुकड़ा करने के लिए करने के लिए डेटा लोड करने के लिए और फिर JSON के रूप में इसे वापस।

.NET 4 json लौटने के लिए एक समर्थन है, और मैं एक ASP.NET MVC साइट के एक भाग के रूप में किया था और यह काफी सरल और सीधा था।

मैं एसक्यूएल सर्वर

2

मैं अन्य उत्तरदाताओं कि इस बेहतर आपके आवेदन कोड में किया जाता है के साथ सहमत से बाहर परिवर्तन स्थानांतरित करने के लिए सलाह देते हैं। हालांकि ... यह create assembly सिंटैक्स का उपयोग कर डेटाबेस में सीएलआर असेंबली को शामिल करने की SQL सर्वर की क्षमता का उपयोग कर सैद्धांतिक रूप से संभव है। पसंद वास्तव में तुम्हारा है। आप .net में अनुवाद करने के लिए एक असेंबली बना सकते हैं, उस असेंबली को SQL सर्वर में परिभाषित करें और फिर जेएसओएन को अपने संग्रहीत प्रक्रियाओं से रिटर्न वैल्यू के रूप में क्रमबद्ध करने के लिए निहित विधि का उपयोग करें ...

0

अरे सभी प्रतिक्रियाओं के लिए धन्यवाद .. यह अभी भी मुझे आश्चर्यचकित करता है कि वहां कितने लोगों की मदद करने का समय है।

सभी बहुत अच्छे अंक, और निश्चित रूप से ऐप/परत को रूपांतरण कार्य करने की मेरी भावना की पुष्टि की - वास्तविक डेटा और फ्रंटएंड के बीच गोंद के रूप में। मुझे लगता है कि मैंने एमवीसी या एसक्यूएल -2008 के साथ बहुत ज्यादा नहीं रखा है, और इसलिए यह सुनिश्चित नहीं था कि कुछ नगेट्स ट्रैकिंग के लायक हैं।

के रूप में यह काम किया (निम्नलिखित कुछ लिंक यहां पोस्ट, और आगे मछली पकड़ने) मैं कुछ समय के लिए निम्न कार्य करने का विकल्प चुना है (.NET 3.5 का उपयोग कर वापस अटक और कोई MVC अभी ..):

  1. एक serializable सूची के लिए एक सरल datatable> संग्रह (शब्दकोश) रूपांतरण का उपयोग करना एक datatable/DataReader
  2. के रूप में SQL डेटा हो रही
  3. क्योंकि अभी मैं जावास्क्रिप्ट को दलाल के रूप में कार्य करने के लिए एक ashx पेज का उपयोग कर रहा (यानी एक JQuery AJAX कॉल के माध्यम से), मेरे ASHX पृष्ठ के भीतर मेरे पास है:

    संदर्भ। Reesponse.ContentType = "application/json"; सिस्टम.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();

  4. तभी मैं इस मुद्दे कर सकते हैं: json.serialize (<>)

पिछड़े एक सा लग सकता है, लेकिन यह ठीक काम करता है .. और मुख्य चेतावनी है कि यह कभी की भारी मात्रा में नहीं लौटा रहा है है एक समय में डेटा।

एक बार फिर, सभी repsonses के लिए धन्यवाद!

+0

आप अपनी विधि को [WebMethod] के साथ क्यों सजाने नहीं देते हैं, इसलिए आपको उस बॉयलरप्लेट कोड को हाथ से लिखना नहीं है? – Hut8

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