2008-08-25 10 views
37

これまでC++でsqlite.hをインクルードしていましたが、C#でも同様の方法がありますか?C#のsqliteデータベースに接続して使用する最良の方法は何ですか

+3

これは、この質問の複製です:http://stackoverflow.com/questions/93654/is-there-a-netc-wrapper-for-sqliteそして別の答えがあります。 –

+0

[SQLiteの.NET/C#ラッパーはありますか?](https://stackoverflow.com/questions/93654/is-there-a-net-c-wrapper-for-sqlite) – Flimzy

答えて

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; New = False; " ***毎回すべてのデータとテーブルを失いたくない場合***。 – Fil

+0

はVS2017で動作しません。次のエラーが表示されます。 未処理の例外:System.BadImageFormatException:ファイルまたはアセンブリ 'System.Data.SQLite、Version = 1.0.79.0、Culture = neutral、PublicKeyToken = db937bc2d44ff139'を読み込めませんでした。不正な形式のプログラムをロードしようとしました。 at ConsoleApp1_del2.Program.Main(String [] args) –

1

モノラルはラッパーが付属しています。

https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0は、実際のSQLite dll(http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zipはダウンロードページhttp://www.sqlite.org/download.html/にあります)を.netに変換するコードを提供しています。これは、LinuxまたはWindows上で動作します。

これは第三者のライブラリへの依存を最小限に抑え、すべての世界の中で最も薄いようです。このプロジェクトを一からやらなければならない場合は、これが私のやり方です。

3

NET FrameworkでSQLiteデータベースを使用する別の方法は、Fluent-NHibernateを使用することです。
[それはNHibernateの周りを包む(ORMモジュール - オブジェクト関係マッピング)NETモジュールです。そして流暢なパターンで(XMLファイルなし)プログラムでNHibernateのを設定することができます]

ここでは簡単な「入門」説明がどのようですステップでC#のステップでこれを行うには:それは、Visual Studioプロジェクトとしてソースコードが含まれ

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

関連する問題