2010-06-14 19 views
10

मैं एक cqllite डीबी से एक सी # अनुप्रयोग से कनेक्ट करने की कोशिश कर रहा हूँ। मैंने पहले कभी SQLLite के साथ काम नहीं किया है।मैं सी # से SQLite डीबी फ़ाइल से कैसे कनेक्ट करूं?

var connectionString = @"data source='C:\TestData\StressData.s3db'"; 
      connection = new SQLiteConnection(connectionString); 
      connection.Open(); 

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

System.NotSupportedException: The given path's format is not supported. 
    at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) 
    at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath) 

क्या मैं गलत कर रहा हूँ?

धन्यवाद ..

निक

अद्यतन:

मैं 'डेटा स्रोत' 'डेटा स्रोत' में बदल दिया मुझे करने का सुझाव दिया है। अब मुझे एक नई त्रुटि मिलती है:

इसे बदलने के बाद मुझे एक नई त्रुटि मिलती है: System.ArgumentException: डेटा स्रोत खाली नहीं हो सकता है। उपयोग करें: मेमोरी: System.Data.SQLite.SQLiteConnection.Open()

पर कोई इन-मेमोरी डेटाबेस खोलने के लिए कोई और सुझाव?

+1

अपने कनेक्शन स्ट्रिंग के भीतर apostrophes को हटाने का प्रयास करें डेटासोर्स पैरामीटर: '@" डेटासोर्स = सी: \ TestData \ StressData.s3db "'। –

उत्तर

13

मिल गया ..

"data source=c:\TestData\StressData.s3db; Version=3;" 

'संस्करण' विशेषता की तरह लग रहा वैकल्पिक नहीं है। दिलचस्प है कि .NET प्रदाता इसे डिज़ाइनर प्रॉपर्टी विंडो में नहीं दिखाता है।

+2

कनेक्शन स्ट्रिंग बनाने के लिए SQLiteConnectionStringBuilder ऑब्जेक्ट का उपयोग करना (इसे स्ट्रिंग के रूप में हार्डकोड करने की बजाय) इस तरह की अधिकांश समस्याओं को अस्पष्ट करता है (संदिग्ध पैरामीटर नाम, टाइपो)। जब संस्करण विशेषता की बात आती है, कम से कम मेरे SQLite को इसकी आवश्यकता नहीं होती है। –

1

this के अनुसार, data source होना चाहिए DataSource

+0

दोह! मेरे विचार से आप सही है। इसे बदलने के बाद मुझे एक नई त्रुटि मिलती है: सिस्टम। ऑर्ग्यूमेंट अपवाद: डेटा स्रोत खाली नहीं हो सकता है। उपयोग करें: मेमोरी: System.Data.SQLite.SQLiteConnection.Open() पर एक मेमोरी डेटाबेस खोलने के लिए मुझे एक तर्क प्रदान करना होगा? – Nick

+0

@ निक, मैंने कभी इसका उपयोग नहीं किया है, लेकिन डॉक्स से यह तर्क लगता है कि तर्क 'नया SQLiteConnection ("DataSource = C: \ TestData \ StressData.s3db") होना चाहिए। मुझे नहीं पता कि यह क्यों काम नहीं कर रहा है: \ –

+1

वास्तव में ऐसा लगता है कि इसे 'डेटा स्रोत' – Nick

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