2012-02-20 6 views
6

पर पढ़ने की अनुमति नहीं है मैंने एमडीबी फाइलों को डाउनलोड करने और ओएलईडीबी प्रदाता के कारण उन्हें पढ़ने के लिए लिपि लिखी है। सभी ठीक काम करते हैं, लेकिन अगर मैं टेबल से पढ़ने की कोशिश करता हूं, तो यह अपवाद फेंकता है:एमएस एक्सेस: रिकॉर्ड (ओं) को पढ़ा नहीं जा सकता है; [टेबल]

एमएस एक्सेस: रिकॉर्ड (ओं) को पढ़ा नहीं जा सकता; कोई tblMytable

var cmd = new OleDbCommand("SELECT * FROM tblMytable", conn); 
var reader = cmd.ExecuteReader(); 

पर अनुमति पढ़ रहा अनुमतियों को बदल दिया उपयोगकर्ता "व्यवस्थापक" के लिए सुश्री Access में सीधे और यह काम करता है। लेकिन समस्या यह है कि यह स्क्रिप्ट संगीत दिन में दो बार दौड़ती है और यह लगभग 20 फाइलें डाउनलोड करती है। तो यह मैन्युअल रूप से बदलती अनुमतियों असंभव है।

क्या प्रोग्राम के लिए प्रोग्राम के पढ़ने के अधिकारों को बदलना संभव है?

किसी भी विचार के लिए बहुत बहुत धन्यवाद!

+2

, सुनिश्चित नहीं हैं कि अगर आप अधिकार बदल सकते हैं, लेकिन यदि संभव हो, तो आपको यह आवश्यक होगा कि आप व्यवस्थापक या स्वामी अनुमति के साथ उपयोगकर्ता के रूप में डीबी में लॉग इन करें। इसलिए मैं सुझाव दूंगा कि इसके बजाय आप कनेक्शन स्ट्रिंग को बदलकर शायद ऐसे उपयोगकर्ता के रूप में सीधे लॉगिन करने का प्रयास करें। मुझे संदेह है कि इसके लिए आपको .MDW फ़ाइल की आवश्यकता होगी। –

उत्तर

5

मैंने system.mdw फ़ाइल का उपयोग करके इसे हल किया। मैंने इस फ़ाइल को "c: \ users \ Administrator \ AppData \ Roaming \ Microsoft \ Access \" (Win7 में) अनुप्रयोग निर्देशिका (App_Data) और संशोधित कनेक्शन स्ट्रिंग से कॉपी किया है।

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.MDB;Persist Security Info=True;Jet OLEDB:System Database=|DataDirectory|\System.MDW; 

var conn = new OleDbConnection(connectionString);

तो अभी भी यह डेटा पढ़ने के लिए असंभव है, मैं निष्पादित अनुदान आदेश:

"GRANT SELECT ON TABLE tblTable TO PUBLIC" 

और यह काम करता है :)

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