2010-07-01 15 views
7

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

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;"); 

अद्यतन:

cnTrupp = new SqlConnection("database=DB_Trupp;server=.\\SQLExpress;Persist Security Info=True;integrated security=SSPI"); 

लेकिन जब मैं cnTrupp.Open() का उपयोग यह मुझसे कहता है कि लॉगिन विफल:

मैं इस एक का उपयोग किया।

+3

http://www.connectionstrings.com/ उन सभी में है। –

उत्तर

11

connection strings वेबसाइट देखें, जिसमें आपके कनेक्शन स्ट्रिंग के लिए बहुत उदाहरण है।

  • सर्वर आप (प्रयोग "." या (local) या localhost स्थानीय मशीन के लिए)
  • डेटाबेस आप चाहते हैं उसका नाम से कनेक्ट करना चाहते का नाम:

    असल में, आप तीन चीज़ों की ज़रूरत

  • करने के लिए सुरक्षा को परिभाषित करने की किसी तरह से कनेक्ट - या तो एकीकृत विंडोज सुरक्षा, या परिभाषित एक उपयोगकर्ता नाम/पासवर्ड कॉम्बो

उदाहरण के लिए, यदि आप अपने स्थानीय मशीन से कनेक्ट करना चाहते हैं और अगर AdventureWorks डेटाबेस का उपयोग कर एकीकृत सुरक्षा, का उपयोग करें:

server=(local);database=AdventureWorks;integrated security=SSPI; 

या यदि आप डिफ़ॉल्ट स्थापना में आपकी मशीन पर SQL सर्वर एक्सप्रेस है, और आप कनेक्ट करना चाहते हैं AdventureWorksLT2008 डेटाबेस के लिए, इस का उपयोग करें: अपने कोड में इसे लिखने के बजाय

server=.\SQLExpress;database=AdventureWorksLT2008;integrated Security=SSPI; 
+0

'localhost' का वेब या HTTP से कोई लेना देना नहीं है। यह SQL सर्वर के साथ ठीक काम करेगा। –

+0

क्या आप लोकलहोस्ट बनाम (स्थानीय) बनाम के लिए स्रोत प्रदान कर सकते हैं। जानकारी? मैंने हमेशा सोचा था कि आप स्थानीयहोस्ट का उपयोग कर सकते हैं ... –

+0

@ एबे मिस्सेलर: नहीं, आप पूरी तरह से सही हैं - लोकलहोस्ट भी काम करता है। भ्रम के लिए खेद है ..... –

0

आपको यह निर्दिष्ट करने की आवश्यकता है कि आप डेटाबेस के साथ प्रमाणित कैसे करेंगे। आप एकीकृत सुरक्षा उपयोग करना चाहते हैं (यह अपने स्थानीय या डोमेन Windows खाते का उपयोग कर Windows प्रमाणीकरण का उपयोग कर का मतलब है), कनेक्शन स्ट्रिंग से जोड़ें:

Integrated Security = True; 

आप एसक्यूएल सर्वर प्रमाणीकरण का उपयोग करना चाहते हैं (अर्थात आपका एक लॉगिन निर्दिष्ट और पासवर्ड बल्कि एक Windows खाते) का उपयोग करने से, इस जोड़ें:

User ID = "username"; Password = "password"; 
3

स्टैंडर्ड सुरक्षा
डेटा स्रोत = Servername \ InstanceName; प्रारंभिक सूची = myDataBase; प्रयोक्ता आईडी = myUsername; पासवर्ड = mypassword;

विश्वसनीय कनेक्शन
डेटा स्रोत = Servername \ InstanceName; प्रारंभिक सूची = myDataBase; एकीकृत सुरक्षा = SSPI;

यहां कनेक्शन तार पर एक अच्छा संदर्भ है कि मैं काम रखना है: ConnectionStrings.com

+0

ठीक है, लेकिन मैं इसे किसी अन्य कंप्यूटर पर स्थापित करने जा रहा हूं, मुझे दूसरे कंप्यूटर का नाम कैसे पता होना चाहिए? – Osukaa

+0

क्या स्थापित करें? डेटाबेस या आवेदन? आपके कनेक्शन स्ट्रिंग में केवल एक चीज जिसकी आप परवाह है वह डेटाबेस है जहां डेटाबेस है। –

+0

मुझे लगता है कि आप उलझन में हो सकते हैं सर्वर नाम \ instanceName SQLServer को संदर्भित करता है, न कि जिस कोड पर कोड चल रहा है। – JohnFx

0

कॉपी/पेस्ट क्या अपने कोड में नीचे है: इस समाधान अपने विंडोज़ लॉग इन करने के खाते का उपयोग करता है

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;Integrated Security = True;"); 

ध्यान रखें में

जैसा कि जॉन और एडम ने कहा है, आपको यह करना है कि आप किस प्रकार लॉग इन कर रहे हैं (या लॉग इन नहीं कर रहे हैं)। बेहतर स्पष्टीकरण प्राप्त करने के लिए दिए गए लिंक को देखें।

+1

'localhost' स्थानीय एडाप्टर के लिए एक सिस्टम पहचानकर्ता है। यह ठीक काम करेगा; एसएसएमएस में कोशिश करें। –

+0

@ एडम रॉबिन्सन: आप बिल्कुल सही हैं - एक आकर्षण की तरह काम करता है। यकीन नहीं है कि मुझे यह कहां से मिला .... ठीक है, आज कुछ नया सीखा! :-) –

0

सीधे मैं सुझाव है कि आप .config फ़ाइल में समर्पित <connectionStrings> तत्व का इस्तेमाल करते हैं और वहाँ से इसे पुनः प्राप्त।

using कथन का भी उपयोग करें ताकि उपयोग के बाद आपका कनेक्शन स्वचालित रूप से बंद हो जाए और इसका निपटारा हो जाए।

कनेक्शन तारों को ढूंढने के लिए एक महान संदर्भ: connectionstrings.com/sql-server-2008

+0

-1 इसका वास्तविक प्रश्न से कोई लेना देना नहीं है। –

+0

+1 वह एक अच्छा बिंदु बनाता है और कनेक्शन स्ट्रिंग जानकारी के लिए एक संसाधन प्रदान करता है। –

+0

@ एबे: उनका "बिंदु" "इसे देखो" है। उस उत्तर में जो वास्तविक समस्या को संबोधित करता है वह अच्छा है। यह जानकारी पोस्ट करते हुए कि, जानना अच्छा है, सवाल से असंबंधित नहीं है। –

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