2009-05-07 12 views
7

हैलो लोग मैं अपने सी # 2.0 एप्लिकेशन में स्क्लाइट का उपयोग करने के लिए संघर्ष कर रहा हूं और मैंने आखिरकार धारणाओं से छुटकारा पाने और वास्तव में बुनियादी प्रश्न पूछने का फैसला किया है।sqlite3.dll और system.data.sqlite.dll

जब मैं एक डेटाबेस बनाया, टेबल उपयोगकर्ताओं के साथ iagency कहना बाहरी उपकरणों से फ़ायरफ़ॉक्स प्लग और एक अन्य sqladmin उपकरण मैं VS2005 यह प्रदर्शित करता है System.Data.SQLite.SQLiteException:Sqlite Error no such table users अंदर sqlicommand से क्वेरी नहीं कर सकता की तरह, कृपया आश्वस्त रहें कि मैं system.data.sqlite को संदर्भित किया गया है SQLite-1.0.61.0-setup

जब मैं डेटाबेस बनाने और वीएस सर्वर एक्सप्लोरर और वीएस डेटाबेस gui टूल्स से एक तालिका बनाने के विपरीत करता हूं तो इसे क्वेरी नहीं किया जा सकता है, लेकिन अन्य टूल्स द्वारा देखा जा सकता है, लेकिन स्ट्रिंगबिल्डर का उपयोग कर वीएस से क्वेरी के माध्यम से बनाए गए टेबल जैसे टेबल ब्लै ब्लै बनाएँ। इसे डेटाग्रिड में प्रदर्शित किया जा सकता है लेकिन कोई भी उपकरण उस तालिका को देख और प्रदर्शित नहीं कर सकता है।

मुझे अपने आवेदन में SQLite काम करने के लिए वास्तव में क्या चाहिए?

मैं अपने आवेदन करने के लिए संदर्भ के रूप में खिड़कियों के लिए धारा precompiled binaries SQLite साइट से डाउनलोड sqlitedll-3_6_14.zip की sqlite3.dll जोड़ने की कोशिश की है, लेकिन यह make sure it's accessible an it's a valid assembly or com component साथ विफल रहता है।

+0

कुछ नमूना कोड बेहतर पोस्ट करें। –

उत्तर

11

मैंने यह डाउनलोड किया SQLite-1.0.61.0-setup.exe स्थापना को चलाएं तो मैंने फ़ायरफ़ॉक्स पसंदीदा sqlite डीबी तक पहुंचने के लिए यह लिखा था।

using System.Data.SQLite; // Dont forget to add this to your project references 
          // If the installation worked you should find it under 
          // the .Net tab of the "Add Reference"-dialog 

namespace sqlite_test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var path_to_db = @"C:\places.sqlite"; // copied here to avoid long path 
      SQLiteConnection sqlite_connection = new SQLiteConnection("Data Source=" + path_to_db + ";Version=3;New=True;Compress=True;"); 

      SQLiteCommand sqlite_command = sqlite_connection.CreateCommand(); 

      sqlite_connection.Open(); 

      sqlite_command.CommandText = "select * from moz_places"; 

      SQLiteDataReader sqlite_datareader = sqlite_command.ExecuteReader(); 

      while (sqlite_datareader.Read()) 
      { 
       // Prints out the url field from the table: 
       System.Console.WriteLine(sqlite_datareader["url"]); 
      } 
     } 
    } 
} 
+2

यदि आपको संदर्भ में 'System.Data.SQLite' असेंबली नहीं मिलती है ** संदर्भ जोड़ें .../.NET ** (मैंने नहीं किया।) इसे ** ब्राउज़ करें ** से जोड़ें। आपको 'सी: \ प्रोग्राम फ़ाइलें \ System.Data.SQLite \ bin' (या 'सी: \ प्रोग्राम फ़ाइलें (x86) \ System.Data.SQLite \ bin' में 2 डीएलएल मिलेगा यदि आप x86 संस्करण का उपयोग कर रहे हैं 64 बिट विंडोज़ इंस्टॉलेशन पर।) – ocodo

3

कमांड लाइन SQLite टूल में डेटाबेस खोलने का प्रयास करें (SQLite.org से), और स्कीमा की जांच करें।

आप इस तरह से स्कीमा जाँच कर सकते हैं:

.schema 

यह सब एसक्यूएल आवश्यक बाहर डंप डेटाबेस में तालिकाएं बनाने के लिए होगा। सुनिश्चित करें कि तालिका वहां है, जिस नाम से आप मानते हैं कि यह होना चाहिए।

आपको SQLite.org से .dll फ़ाइल की आवश्यकता नहीं है, आपको केवल System.Data.SQLite से असेंबली की आवश्यकता है।

+0

उत्तर के लिए धन्यवाद। यहाँ एक और बेवकूफ सवाल है। मुझे exe ऐप को कहां निकालना चाहिए? क्योंकि मैंने डेटाबेस को खोजने के लिए डेटाबेस को चुनने का प्रयास किया है। डेटाबेस को खोजने के लिए कुछ भी नहीं।मेरे सी # एप्लिकेशन फ़ोल्डर के अंदर एक्सई की प्रतिलिपि बनाने के बाद और इस कमांड "sqlite3 iagency" के साथ डेटाबेस का चयन करने का प्रयास किया। –

+0

दिखाने के लिए कुछ भी नहीं है, मैं यहां बताई गई समस्या को हल करता हूं। आर यूबेन के लिए मैंने जो टिप्पणी की है, उसे इस्तेमाल करें। sqlite3 का उपयोग करें iagency.db मैं एक्सटेंशन भूल गया था। मैं cmd.exe से "स्कीमा को इस तरह से जांच सकता हूं" से बहुत अच्छी तरह से नहीं मिल रहा हूं, मैंने टाइप किया है और टाइप करने के बाद sqlite3 iagency.db टाइप किया है। schema या it टेबल नाम जैसे .schema users.thanks मैन –

0

आप पथ पर्यावरण चर में असेंबली और डीबी का स्थान जोड़ने का प्रयास कर सकते हैं। SQLite असेंबली में नेट और देशी कोड दोनों एक साथ विलय हो गए हैं, इसलिए आपको सी डीएल की आवश्यकता नहीं है। (मर्जबिन टूल में वे ऐसा करने के लिए शामिल हैं)

+0

मैंने पर्यावरण चर के लिए sqlite.exe पथ जोड़ा था। windows cmd.exe का उपयोग करके मेरे ड्राइव डी पर कुछ परीक्षण और मैं उस तालिका को ठीक से पूछ सकता हूं। अब मैं निर्देशिका को बदलता हूं जहां मेरी परियोजना और डेटाबेस पहले बनाया गया था। sqlite3 iagency और .schema कमांड किसी भी आउटपुट का उत्पादन नहीं करता है। मैंने कोशिश की है। स्कैनमैन? उपयोगकर्ता? लेकिन कुछ नहीं.क्या मुझे कुछ याद आ रही है? –

2

मेरे लिए - this लिंक शुरू करने में बहुत मदद करता है।

वेब अनुप्रयोग के माध्यम से डेटाबेस को सुलभ बनाने के लिए सबस्कोनिक काम प्राप्त करना कठिन था -
लेकिन यह एक और कहानी है।

0

मैंने पथ पर्यावरण चर पर स्थान जोड़ने की कोशिश की लेकिन बिना सफलता के।

अंततः मैंने System.Data.SQLite.dll और System.Data.SQLite.lib को वेब एप्लिकेशन के बिन फ़ोल्डर में कॉपी किया जहां अन्य असेंबली स्थित हैं, और एप्लिकेशन काम करता है।