从C#连接和使用sqlite数据库的最佳方法是什么?

从C#连接和使用sqlite数据库的最佳方法是什么?

What is the best way to connect and use a sqlite database from C#

我之前在C ++中通过包含sqlite.h完成了这个,但在C#中是否有类似的简单方法?


我和布鲁斯在一起。我使用http://system.data.sqlite.org/也取得了巨大的成功。这是我创建的一个简单的类示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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包:System.Data.SQLite可用。


SQLite的ADO.NET 2.0 Provider每天下载量超过200次,所以我认为使用它是安全的。


我用这个非常成功:

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

免费,没有任何限制。

(请注意:原始网站不再存在。上面的链接有一个指向404网站的链接,并且包含原始的所有信息)

--Bruce


在http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers上有一个.Net的Sqlite包装器列表。从我所听到的http://sqlite.phxsoftware.com/非常好。这个特殊的允许您通过ADO.Net访问Sqlite,就像任何其他数据库一样。


https://github.com/praeclarum/sqlite-net现在可能是最好的选择。


现在还有这个选项:http://code.google.com/p/csharp-sqlite/ - SQLite到C#的完整端口。


在.NET Framework中使用SQLite数据库的另一种方法是使用Fluent-NHibernate
[它是围绕NHibernate(ORM模块 - 对象关系映射)的.NET模块,允许以流畅的模式以编程方式(没有XML文件)配置NHibernate。

以下是关于如何在C#中逐步执行此操作的简要"入门"说明:

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

它包含一个源代码作为Visual Studio项目。


单声道附带一个包装,使用他们的!

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以.net友好的方式在下载页面http://www.sqlite.org/download.html/上找到。它适用于Linux或Windows。

这似乎是所有世界中最薄的,最大限度地减少了对第三方图书馆的依赖。如果我必须从头开始做这个项目,这就是我的方式。


推荐阅读