2011-05-02 7 views
6

किसी को भी मुझे OLEDB कनेक्शन स्ट्रिंग सिर्फ एक एक्सेल फाइल exclusively अन्य उपयोगकर्ता द्वारा खोला पढ़ने के लिए प्रयोग की जाने वाली बता सकते हैं द्वारा खोला फ़ाइल?OLEDB कनेक्शन स्ट्रिंग विशेष रूप से अन्य उपयोगकर्ता

मैं निम्नलिखित की कोशिश की कनेक्शन स्ट्रिंग जो मेरे लिए काम नहीं किया: -

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Mode=Read;Extended Properties=\"Excel 8.0;HDR=YES;ReadOnly=true;\""; 

यह कनेक्शन स्ट्रिंग थ्रो निम्न अपवाद जब यह अन्य उपयोगकर्ता द्वारा खोला गया है: -

The Microsoft Jet database engine cannot open the file ''. It is already opened exclusively by another user, or you need permission to view its data. 

नोट्स:

  1. एक्सेल फ़ाइल को साझा पर रखा जाता है ताकि एकाधिक उपयोगकर्ता कर सकें खोलो इसे।
  2. प्रदाता इस्तेमाल किया: - Microsoft.Jet.OLEDB.4.0
  3. Excel फ़ाइल के प्रकार: - एमएस एक्सेल 97-2003 वर्कशीट
  4. एक फाइल कॉपी कर रहा है नहीं अनुमति
+1

यदि आप केवल फ़ाइल से पढ़ना चाहते हैं, तो आप पहले Excel फ़ाइल की एक प्रति बना सकते हैं, और उसके बाद काम करने के बाद हटा सकते हैं। –

+0

चूंकि एकाधिक उपयोगकर्ता एक्सेल संपादित कर रहे हैं, इसलिए अगर हम फ़ाइल की प्रतिलिपि बनाते हैं तो यह समस्याएं पैदा करेगा। –

+0

क्या आपने कोशिश की है? –

उत्तर

0

मुझे लगता है कि आप सुझाव है कि है कुछ समय के लिए अंतराल पर कनेक्शन खोलने के लिए पृष्ठभूमि थ्रेड का उपयोग करें, और जब आप एक्सेल डेटासोर्स से कनेक्शन प्राप्त करते हैं, तो अपने सभी डेटा को स्मृति में पढ़ें और तुरंत कनेक्शन बंद करें, ताकि अन्य प्रक्रियाएं फ़ाइल तक पहुंच सकें।

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