我之前在C ++中通过包含sqlite.h来做到这一点,但在C#中是否有类似的简单方法?
答案 0 :(得分:66)
我和布鲁斯在一起。我使用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;
}
}
答案 1 :(得分:41)
ADO.NET 2.0 Provider for SQLite每天下载次数超过200次,所以我认为使用该下载是安全的。
答案 2 :(得分:12)
我已经非常成功地使用了它:
http://system.data.sqlite.org/
免费,没有任何限制。
(评论说明:原始网站不再存在。上面的链接有一个指向404网站的链接,并且包含原始的所有信息)
- 布鲁斯
答案 3 :(得分:6)
在http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers有一个.Net的Sqlite包装器列表。从我所听到的http://sqlite.phxsoftware.com/非常好。这个特殊的允许您通过ADO.Net访问Sqlite,就像任何其他数据库一样。
答案 4 :(得分:5)
现在还有这个选项:http://code.google.com/p/csharp-sqlite/ - SQLite到C#的完整端口。
答案 5 :(得分:5)
https://github.com/praeclarum/sqlite-net现在可能是最佳选择。
答案 6 :(得分:3)
在.NET Framework中使用SQLite数据库的另一种方法是使用 Fluent-NHibernate 。
[它是包含NHibernate(ORM模块 - 对象关系映射)的.NET模块,允许以流畅的模式以编程方式(没有XML文件)配置NHibernate。]
以下是关于如何在C#中逐步执行此操作的简要“入门”说明:
https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started
它包含一个源代码作为Visual Studio项目。
答案 7 :(得分:1)
Mono附带一个包装纸,使用它们!
https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0提供代码,以.net友好的方式包装在下载页面http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip上找到的实际SQLite dll(http://www.sqlite.org/download.html/)。它适用于Linux或Windows。
这似乎是所有世界中最薄的,最大限度地减少了对第三方图书馆的依赖。如果我必须从头做这个项目,这就是我的方式。
答案 8 :(得分:1)
在这里,我试图帮助您逐步完成工作:(这可能是其他问题的答案)
差不多就是这样。现在您可以在您的项目中使用 SQLite。 要在代码级别在您的项目中使用它,您可以使用以下示例代码:
建立一个连接字符串:
string connectionString = @"URI=file:{the location of your sqlite database}";
建立一个sqlite连接:
SQLiteConnection theConnection = new SQLiteConnection(connectionString );
打开连接:
theConnection.Open();
创建一个sqlite命令:
SQLiteCommand cmd = new SQLiteCommand(theConnection);
制作命令文本,或者更好地说出您的 SQLite 语句:
cmd.CommandText = "INSERT INTO table_name(col1, col2) VALUES(val1, val2)";
执行命令
cmd.ExecuteNonQuery();
就是这样。
答案 9 :(得分:0)
如果您对库有任何疑问,可以使用Microsoft.Data.Sqlite;
public static DataTable GetData(string connectionString, string query)
{
DataTable dt = new DataTable();
Microsoft.Data.Sqlite.SqliteConnection connection;
Microsoft.Data.Sqlite.SqliteCommand command;
connection = new Microsoft.Data.Sqlite.SqliteConnection("Data Source= YOU_PATH_BD.sqlite");
try
{
connection.Open();
command = new Microsoft.Data.Sqlite.SqliteCommand(query, connection);
dt.Load(command.ExecuteReader());
connection.Close();
}
catch
{
}
return dt;
}
您可以添加NuGet包Microsoft.Data.Sqlite