2008-10-09 13 views
49

मुझे लगता है यह अजीब लगा कि विजुअल C# 2008 एक्सप्रेस संस्करण, जब आप डेटाबेस एक्सप्लोरर का उपयोग करें, आपके विकल्प हैं:दृश्य स्टूडियो एक्सप्रेस संस्करण के साथ SQL सर्वर से कनेक्ट हो रहा

  1. माइक्रोसॉफ्ट एक्सेस
  2. एसक्यूएल सर्वर कॉम्पैक्ट 3.5 , और
  3. SQL सर्वर डेटाबेस फ़ाइल।

लेकिन अगर आप विजुअल वेब डेवलपर 2008 एक्सप्रेस का उपयोग करें, आप एक नियमित एसक्यूएल सर्वर, ओरेकल, ODBC, आदि से कनेक्ट कर सकते

विकासशील कमांड लाइन या अन्य सी # क्षुधा लोगों को बात करनी है के लिए एक SQL सर्वर डेटाबेस, क्या आपको वास्तव में एक आईडीई (विजुअल वेब डेवलपर) और अपने प्रोग्राम को किसी अन्य (विज़ुअल सी #) के साथ अपना LINQ/डेटा एक्सेस कोड बनाने की आवश्यकता है?

यह कड़ी मेहनत नहीं है, लेकिन यह अजीब लगता है। यदि माइक्रोसॉफ्ट आपको SQL सर्वर से कनेक्ट करने के लिए विजुअल स्टूडियो में अपग्रेड करने के लिए मजबूर करना चाहता था, तो वे उस सुविधा को उनके एक निःशुल्क आईडीई में क्यों शामिल करेंगे, लेकिन दूसरा नहीं? मुझे लगता है कि मुझे कुछ याद आ रहा है (जैसे इसे दृश्य सी # में कैसे करना है)।

+0

यह एक शानदार सवाल है। संपूर्ण SQL सर्वर गड़बड़ बहुत निराशाजनक है, यहां तक ​​कि यह चुनने से कि कौन सा संस्करण वास्तव में इसके साथ इसे तैनात करने के लिए उपयोग कर रहा है। यह सवाल रास्ते में बड़ी परेशानियों में से एक को संबोधित करता है। – dotancohen

+0

यह "रचनात्मक नहीं" के रूप में कैसे बंद किया जाता है? इसमें बहुत सारे अपवित्र और विचार हैं, और बहुत से लोगों को यह उपयोगी लगता है। तो आजकल प्रश्नों को बंद करना बहुत आसान है। – Jez

उत्तर

20

आपको सही प्रकार का डेटाबेस (system.data.SqlClient प्रदाता) प्राप्त करने के लिए SQL सर्वर डेटाबेस फ़ाइल विकल्प चुनने में सक्षम होना चाहिए, और फिर अपने डीबी को इंगित करने के लिए कनेक्शन स्ट्रिंग को मैन्युअल रूप से सही करें।

मुझे लगता है कि उन लोगों के डाटाबेस विकल्पों के पीछे तर्क शायद कुछ इस तरह चला जाता है:

  • आप एक्सप्रेस संस्करण उपयोग कर रहे हैं, और आप विजुअल वेब डेवलपर का उपयोग कर नहीं कर रहे हैं, तो आप शायद का निर्माण कर रहे एक डेस्कटॉप कार्यक्रम।
  • यदि आप डेस्कटॉप प्रोग्राम बना रहे हैं, और आप एक्सप्रेस संस्करण का उपयोग कर रहे हैं, तो आप संभवतः एक शौकिया या यूआईएसवी-एर निगम के विकास के बजाय घर पर काम कर रहे हैं।
  • यदि आप किसी निगम के लिए विकास नहीं कर रहे हैं, तो आपका ऐप शायद अंतिम उपयोगकर्ता के लिए नियत है और आपका डेटा स्टोर शायद उनकी स्थानीय मशीन पर जा रहा है।
  • आपको वास्तव में सर्वर-क्लास डेटाबेस को अंतिम उपयोगकर्ता डेस्कटॉप पर तैनात नहीं करना चाहिए। एक इन-प्रोसेस डीबी जैसे एसक्यूएल सर्वर कॉम्पैक्ट या एमएस एक्सेस अधिक उपयुक्त है।

हालांकि, यह तर्क काफी पकड़ नहीं है। यहां तक ​​कि यदि उनमें से प्रत्येक 4 अंक सही 90% समय है, तब तक जब आप उनमें से चार लागू करते हैं तो यह केवल आपके दर्शकों के ~ 65% पर लागू होता है, जिसका अर्थ है कि एक्सप्रेस बाजार का 35% वैध रूप से बात करना चाहता है एक सर्वर-वर्ग डीबी के लिए, और यह एक महत्वपूर्ण समूह है। और इसलिए, सरलीकृत (लालची) संस्करण:

  • एक असली डीबी सर्वर (और हार्डवेयर इसे चलाने के लिए) वास्तविक पैसे खर्च करता है। यदि आपके पास उस तक पहुंच है, तो आपको कम से कम दृश्य स्टूडियो का मानक संस्करण बर्दाश्त करने में सक्षम होना चाहिए।
+7

दुर्भाग्य से अब हम वीएस -2010 में हैं, कोई "मानक" संस्करण नहीं है ... निम्नतम स्तर प्रो है, जो $ 1k से अधिक है। एक दर्द जब मैं सर्वर सर्वर के खिलाफ कुछ प्रोटोटाइप करने की कोशिश कर रहा हूं। –

+0

कामकाज में, क्या आप संवाद को प्राप्त करने के लिए बस एक अस्थायी डीबी फ़ाइल बनाते हैं? आप कनेक्शन स्ट्रिंग को मैन्युअल रूप से कैसे सही करते हैं? क्या यह अलग-अलग स्थानों में नहीं है (app.config, dbml फ़ाइल, आदि)? अगर आप ऐसा करते हैं, तो क्या यह आपको linq का उपयोग एसक्यूएल डिजाइनर के लिए करने की अनुमति देगा? – User

2

मेरा अनुमान है कि वीडब्ल्यूडी के साथ आपके समाधान तीसरे पक्ष के सर्वर पर तैनात होने की अधिक संभावना है, जिनमें से कई गतिशील रूप से संलग्न SQL सर्वर डेटाबेस फ़ाइल की अनुमति नहीं देते हैं। इस प्रकार अन्य कनेक्शन प्रकार की अनुमति।

आईडीई व्यवहार में यह अंतर एक पूर्ण संस्करण में अपग्रेड करने के प्रमुख कारणों में से एक है।

2

आप इस का उपयोग कर रहे हैं, तो एसक्यूएल जो मैं करता हूँ और मेरे दृश्य डेवलपर के लिए चाहते थे करने के लिए एक LINQ प्राप्त करने के लिए, 1) मुक्त विजुअल वेब डेवलपर मिलता है, का उपयोग करें कि, एसक्यूएल सर्वर उदाहरण से कनेक्ट अपने LINQ इंटरफेस बनाने के लिए, फिर जेनरेट की गई फाइलों को अपनी वीस-देव परियोजना में कॉपी करें (मैं वीडी का उपयोग नहीं करता क्योंकि यह मजाकिया लगता है)। केवल * .dbml फ़ाइलों को शामिल करें। सहायक फ़ाइलों को पहचानने के लिए Vis-Dev वातावरण में दो या दो का समय लगेगा। यह थोड़ा अतिरिक्त कदम है लेकिन इसे हाथ से करने या इसे पूरी तरह से या यहां तक ​​कि काम करने से बेहतर करने के लिए बेहतर है, इसके लिए भुगतान करना। मुओ हा हा हाहा।

2

काम करने के लिए सी # एक्सप्रेस 2008 प्राप्त करने में एकमात्र तरीका डेटाबेस फ़ाइल को स्थानांतरित करना था। इसलिए, मैंने SQL सर्वर प्रबंधन स्टूडियो खोला और डेटाबेस छोड़ने के बाद, मैंने फ़ाइल को मेरे प्रोजेक्ट फ़ोल्डर में कॉपी किया। फिर मैंने प्रबंधन स्टूडियो में डेटाबेस को दोबारा जोड़ा। अब, जब मैं स्थानीय प्रतिलिपि से जुड़ने की कोशिश करता हूं तो यह काम करता है। जाहिर है, आप एक ही डेटाबेस फ़ाइल का एक से अधिक बार उपयोग नहीं कर सकते हैं।

21

वर्कअराउंड:

  1. विजुअल वेब डेवलपर एक्सप्रेस में अपने समाधान खोलें। यह समाधान में कुछ परियोजनाओं को लोड नहीं करेगा लेकिन यह ठीक है।
  2. SQL सर्वर से आवश्यक डेटाबेस में डेटाबेस एक्सप्लोरर में नया कनेक्शन बनाएं।
  3. एक नई कक्षा पुस्तकालय परियोजना जोड़ें।
  4. SQL कक्षा आइटम में LINQ जोड़ें और इसे अपने डेटाबेस से लिंक करें।
  5. समाधान बंद करें।
  6. विजुअल सी # एक्सप्रेस में समाधान खोलें।

अब आपके पास SQL ​​कक्षा पुस्तकालय का LINQ है जो विजुअल सी # एक्सप्रेस में आपके SQL सर्वर डेटाबेस से जुड़ा हुआ है।

अद्यतन

समाधान विजुअल स्टूडियो एक्सप्रेस 2010

+3

यह एक्सप्रेस उत्पादों (विजुअल सी # और विजुअल वेब डेवलपर) की विजुअल स्टूडियो 2010 लाइन के साथ काम करता है। धन्यवाद – GlobalCompe

+0

मैं इसे समझने की कोशिश कर रहा हूं दो दिनों के लिए अपने बालों को खींच रहा हूं। धन्यवाद! अगर हम कभी मिलते हैं तो मैं आपको अपनी पसंद का पेय देता हूं! –

+1

शानदार - मैंने अभी एक एंटिटी डेटा मॉडल बनाने के लिए यह कोशिश की है और यह समान रूप से अच्छी तरह से काम करता है। इसे हल करने के लिए धन्यवाद! –

2

मैं सिर्फ सुविधा के लिए खिड़कियों रूपों में अपने घर व्यापार आवेदन शुरू कर दिया है के साथ क्या हुआ के लिए है। मैं वर्तमान में इसे विकसित करने के लिए विजुअल सी # एक्सप्रेस 2010/एसक्यूएल सर्वर 2008 आर 2 एक्सप्रेस का उपयोग कर रहा हूं। मुझे ओपी के समान समस्या मिली जहां मुझे SQL सर्वर के उदाहरण से कनेक्ट करने की आवश्यकता है। मैं यहां विवरण छोड़ रहा हूं लेकिन वह डेटाबेस 2-3 कंप्यूटरों के बीच एक विलय डेटाबेस होगा जो अभी भी मैं जिस अनुप्रयोग को विकसित कर रहा हूं उसका उपयोग भी करूंगा।

मुझे कम से कम एक कामकाज मिला, मुझे लगता है कि मैंने ऐसा इसलिए किया क्योंकि अब मैं किसी भी मुद्दे के बिना tableadapters में अपनी संग्रहीत प्रक्रियाओं का उपयोग करने में सक्षम हूं।

मैंने प्रतिलिपि एक एसक्यूएल कनेक्शन चिपकाया जिसे मैंने ऐप.कॉन्फिग में काम पर एक अलग प्रोजेक्ट (वीएस -2010 प्रीमियम) में इस्तेमाल किया और मुझे वहां की हर चीज बदल दी। जब मैं अपनी सेटिंग्स.सेटिंग पर वापस चला गया, तो मुझे बस यह पुष्टि करना पड़ा कि मैं चाहता था कि app.config फ़ाइल के अंदर क्या था। केवल डाउनसाइड्स मैं देख सकता हूं कि जब आप कनेक्शन स्ट्रिंग के कॉन्फ़िगरेशन के अंदर जाते हैं तो आप कनेक्शन को "परीक्षण" नहीं कर सकते हैं, इसलिए आप "SQL सर्वर" विकल्प नहीं होने के बाद कहीं भी नहीं जा सकते हैं। दूसरी नकारात्मक बात यह है कि आपको सब कुछ मैन्युअल रूप से इनपुट करने की आवश्यकता है क्योंकि आप इसे काम करने के लिए किसी भी जादूगर का उपयोग नहीं कर सकते हैं।

मुझे नहीं पता कि मुझे ऐसा करना चाहिए था लेकिन कम से कम मैं अब अपने SQL सर्वर से कनेक्ट कर सकता हूं :)।

संपादित करें:

यह केवल एसक्यूएल सर्वर 2008 R2 एक्सप्रेस उदाहरणों के साथ काम करता है। यदि आप SQL Server 2008 R2 वर्कग्रुप और ऊपर के साथ प्रयास करते हैं, तो आपको Visual C# 2010 एक्सप्रेस से एक बुरा चेतावनी मिलेगी जो आपको बताती है कि "आप विजुअल स्टूडियो के वर्तमान संस्करण के साथ उस कनेक्शन का उपयोग नहीं कर सकते"। मुझे लगता है कि जब मैं अपने कुछ टेबल एडाप्टर को संशोधित करने की कोशिश कर रहा था। मैं विकसित करने के लिए एक एसक्यूएल एक्सप्रेस इंस्टेंस पर वापस स्विच किया और यह फिर से ठीक काम कर रहा है।

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