2008-08-25 4 views
37

से एसक्लाइट डेटाबेस को जोड़ने और उपयोग करने का सबसे अच्छा तरीका क्या है मैंने cq+ में पहले से SQL_.h सहित इसे किया है लेकिन क्या सी # में एक समान आसान तरीका है?सी #

+3

यह इस प्रश्न का एक डुप्लिकेट है: http://stackoverflow.com/questions/93654/is-there-a-netc-wrapper-for-sqlite और इसका एक अलग उत्तर है। –

+0

संभावित डुप्लिकेट [क्या SQLite के लिए कोई .NET/C# wrapper है?] (Https://stackoverflow.com/questions/93654/is-there-a-net-c-wrapper-for-sqlite) – Flimzy

उत्तर

38

ADO.NET 2.0 Provider for SQLite में प्रति दिन 200 से अधिक डाउनलोड हैं, इसलिए मुझे लगता है कि आप इसका उपयोग करके सुरक्षित हैं।

7

.NET पर http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers पर स्क्लाइट रैपर की एक सूची है। मैंने जो सुना है उससे http://sqlite.phxsoftware.com/ काफी अच्छा है। यह विशेष आपको किसी अन्य डेटाबेस की तरह ADO.Net के माध्यम से स्क्लाइट तक पहुंचने देता है।

12

मैं बड़ी सफलता के साथ इस का उपयोग किया है:

http://system.data.sqlite.org/

बिना किसी प्रतिबंध के नि: शुल्क।

(समीक्षा से ध्यान दें: मूल साइट अब मौजूद नहीं है ऊपर के लिंक एक लिंक 404 साइट की ओर इशारा करते है और मूल की सभी जानकारी है।)

--Bruce

60

मैं ब्रूस के साथ हूं। मैं बड़ी सफलता के साथ http://system.data.sqlite.org/ का उपयोग कर रहा हूं। यहाँ एक सरल वर्ग उदाहरण है कि मैं बनाया है:

using System; 
using System.Text; 
using System.Data; 
using System.Data.SQLite; 

namespace MySqlLite 
{ 
     class DataClass 
     { 
     private SQLiteConnection sqlite; 

     public DataClass() 
     { 
       //This part killed me in the beginning. I was specifying "DataSource" 
       //instead of "Data Source" 
       sqlite = new SQLiteConnection("Data Source=/path/to/file.db"); 

     } 

     public DataTable selectQuery(string query) 
     { 
       SQLiteDataAdapter ad; 
       DataTable dt = new DataTable(); 

       try 
       { 
        SQLiteCommand cmd; 
        sqlite.Open(); //Initiate connection to the db 
        cmd = sqlite.CreateCommand(); 
        cmd.CommandText = query; //set the passed query 
        ad = new SQLiteDataAdapter(cmd); 
        ad.Fill(dt); //fill the datasource 
       } 
       catch(SQLiteException ex) 
       { 
        //Add your exception code here. 
       } 
       sqlite.Close(); 
       return dt; 
    } 
} 

भी एक NuGet package: System.Data.SQLite उपलब्ध नहीं है।

+1

"डेटा स्रोत =/path/to/file.db, नई = झूठी; " *** यदि आप हर बार अपने सभी डेटा और टेबल को खोना नहीं चाहते हैं ***। – Fil

+0

यह वीएस 2017 में काम नहीं कर रहा है।यह निम्न त्रुटि दिखाता है: अनचाहे अपवाद: System.BadImageFormatException: फ़ाइल या असेंबली 'System.Data.SQLite, संस्करण = 1.0.79.0, संस्कृति = तटस्थ, PublicKeyToken = db937bc2d44ff139' लोड नहीं किया जा सका। एक गलत प्रारूप के साथ एक प्रोग्राम लोड करने के लिए एक प्रयास किया गया था। ConsoleApp1_del2.Program.Main (स्ट्रिंग [] args पर ) –

1

मोनो एक रैपर के साथ आता है, उनका उपयोग करें!

https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 एक एसनेट अनुकूल तरीके से वास्तविक SQLite डीएल (http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip डाउनलोड पेज http://www.sqlite.org/download.html/ पर पाया गया) को लपेटने के लिए कोड देता है। यह लिनक्स या विंडोज पर काम करता है।

यह तीसरी पार्टी पुस्तकालयों पर आपकी निर्भरता को कम करने, सभी दुनिया के सबसे पतले लगता है। अगर मुझे इस परियोजना को खरोंच से करना पड़ा, तो यह वही तरीका है जो मैं करूँगा।

3

नेट फ्रेमवर्क में SQLite डेटाबेस का उपयोग करने का एक और तरीका फ़्लुएंट-एनएचबेर्नेट का उपयोग करना है।
[यह नेट मॉड्यूल जो NHibernate इर्द-गिर्द घूमती है। (ORM मॉड्यूल - वस्तु संबंधपरक मानचित्रण) और (एक्सएमएल फाइल के बिना) प्रोग्राम के रूप में NHibernate कॉन्फ़िगर करने के लिए धाराप्रवाह पैटर्न के साथ की अनुमति देता है]

यहाँ संक्षिप्त 'आरंभ कर रहे हैं' विवरण कैसे कदम से कदम सी # में यह करने के लिए:

https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started

यह एक दृश्य स्टूडियो परियोजना के रूप में एक स्रोत कोड भी शामिल है।

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

  • कोई संबंधित समस्या नहीं^_^