2012-12-24 33 views
7

में माइक्रोसॉफ्ट एक्सेस डेटाबेस के साथ कनेक्शन कैसे खोलें मैं अपना डेटाबेस बनाने के लिए माइक्रोसॉफ्ट एक्सेस का उपयोग कर रहा हूं।सी #

static string Constr = "Provider=Microsoft.Jet.OLEDB.4.0;" 
        + "Data Source = MyData.accdb"; 
OleDbConnection Conn = new OleDbConnection(Constr); 
DataSet DataSet1 = new DataSet(); 
string SQLstr = "Select * from Tabel"; 
OleDbDataAdapter DataAdapter1; 
Conn.Open(); 

मैं इस अपवाद हो रही है:: यहाँ मेरी कोड है

प्रकार 'System.Data.OleDb.OleDbException' की एक बिना क्रिया का अपवाद System.Data.dll

में

अतिरिक्त हुआ सूचना: अपरिचित डेटाबेस प्रारूप

+8

http://www.connectionstrings.com/access-2007 – SLaks

+0

आपके द्वारा बनाए गए एमएस एक्सेस डेटाबेस का संस्करण क्या है? –

+0

मैं एमएस एक्सेस 2010 –

उत्तर

7

आप ओलेडीबी प्रदाता के साथ एक्सेस 2007/2010 (accdb) के साथ बनाए गए एक्सेस डेटाबेस को खोलने का प्रयास कर रहे हैं जो ca n Access 2003

के साथ बनाई गई केवल एमडीबी फ़ाइलों को समझें Microsoft.ACE.OleDB.12.0 का उपयोग करने वाला प्रदाता जो पहले से ही Office के नवीनतम संस्करण के साथ स्थापित होना चाहिए।

विकल्प में आप Microsoft Access Database Engine
से उपयुक्त बिट्स डाउनलोड बस संस्करण मंच (x86 या 64) आप उपयोग के लिए उपयुक्त डाउनलोड करने के लिए ध्यान देना सकता है।

और वह

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MyData.accdb"; 

नोट का उपयोग करने के कनेक्शन स्ट्रिंग है: ध्यान रखें कि यदि आप कार्यालय स्थापित किया है, इसी प्रदाता कार्यालय के एक ही bitness है, तो साथ Office 64 बिट 64 बिट संस्करण में ऐस आता है और 32 बिट के लिए वही है। इस परिदृश्य में आपके आवेदन की तैनाती में एक बहुत ही मुश्किल समस्या है। आपको एक ही गठबंधन के साथ संकलित करने की आवश्यकता है या आप प्रदाता प्रदाता का उपयोग करने में सक्षम नहीं होंगे। (या असंगत Office संस्करण को अनइंस्टॉल करें और संगत को पुनर्स्थापित करें। बेशक यदि आप अपने ग्राहक को राजी करने में सक्षम होना चाहिए कि कार्यालय असंगत ऐप है :-)

+0

का उपयोग कर रहा हूं मैंने अपनी स्ट्रिंग को 'स्थिर स्ट्रिंग Constr = "प्रदाता = माइक्रोसॉफ्ट.एसीई.ओएलडीबी.12.0; डेटा स्रोत = MyData.accdb" में संपादित किया है;' मुझे यह अपवाद मिल रहा है 'एक अनचाहे System.Data.dll अतिरिक्त जानकारी: 'Microsoft.ACE.OLEDB.12.0' प्रदाता स्थानीय मशीन पर पंजीकृत नहीं है। ' –

+1

यह एसीई ड्राइवर द्वारा नहीं किया जा सकता है' प्रकार का सिस्टम 'इन्वाइडऑपरेशन अपवाद' का अपवाद। स्थापित या 32 बिट ड्राइवर स्थापित है लेकिन आपका एप्लिकेशन किसी भीCPCP के लिए संकलित है और आप 64 बिट ऑपरेटिंग सिस्टम पर चल रहे हैं। क्या आपके पास 64 बिट ओएस पर 32 बिट ऑफिस स्थापित है? – Steve