SQLite数据库在C#应用程序中的应用

SQLite是一种轻量级的数据库,它将数据库引擎和接口结合到一个单一的库中,并且能够将所有数据存储在一个单一的文件中。如果应用程序需要一个独立的数据库,SQLite可能是一个完美的选择。选择SQLite当然还有其他原因,包括:

SQLite具有较小的内存占用,并且只需要一个库就可以访问数据库,这使得它非常适合嵌入式数据库应用程序。

SQLite已经被移植到许多平台上,甚至可以在Windows CE和Palm OS上运行。

SQLite符合ACID标准,满足原子性、一致性、隔离性和持久性的所有四个标准。

SQLite实现了ANSI-92 SQL标准的大部分子集,包括视图、子查询和触发器。

不需要额外的数据库驱动程序,也不需要ODBC配置。只需将库和数据文件与应用程序一起包含即可。

SQLite为C/C++、PHP、Perl、Python、Tcl等提供了原生语言API。C#的原生API尚未出现。

C#应用程序中使用SQLite

要在C#应用程序中使用SQLite,需要下载一个第三方免费的ADO.NET数据提供程序。

演示应用程序使用SQLite数据库来存储id和description值对在一个单一的表——mains中。将在网格中显示这个表的内容,并添加了添加/删除和修改记录的功能。要设置系统,请按照以下步骤操作:

解压缩存档,并将*.dll文件放入Binary文件夹中。

通过“项目->添加引用”在.NET应用程序中使用SQLite.NET.dll。

在*.cs文件的using指令声明区域添加Using Finisar.SQLite;。

声明以下私有字段,以便在应用程序中使用:

private SQLiteConnection sql_con; private SQLiteCommand sql_cmd; private SQLiteDataAdapter DB; private DataSet DS = new DataSet(); private DataTable DT = new DataTable();

创建一个函数来设置连接字符串。DemoT.db是单个数据文件的名称。它已经有一个单一的表——mains。版本(=3)是数据库引擎的版本。

private void SetConnection() { sql_con = new SQLiteConnection( "Data Source=DemoT.db;Version=3;New=False;Compress=True;" ); }

创建一个通用函数ExecuteQuery,以执行创建命令查询。

private void ExecuteQuery(string txtQuery) { SetConnection(); sql_con.Open(); sql_cmd = sql_con.CreateCommand(); sql_cmd.CommandText=txtQuery; sql_cmd.ExecuteNonQuery(); sql_con.Close(); }

现在创建一个LoadData函数,以访问SQLite数据库并从mains表中检索数据并填充数据集。请参阅以下代码:

private void LoadData() { SetConnection(); sql_con.Open(); sql_cmd = sql_con.CreateCommand(); string CommandText = "select id, desc from mains"; DB = new SQLiteDataAdapter(CommandText,sql_con); DS.Reset(); DB.Fill(DS); DT= DS.Tables[0]; Grid.DataSource = DT; sql_con.Close(); }

要添加/编辑/删除表中的条目,只需将所需的查询传递给已经创建的ExecuteQuery函数。请参阅以下代码示例:

private void Add() { string txtSQLQuery = "insert into mains (desc) values ('" + txtDesc.Text + "')"; ExecuteQuery(txtSQLQuery); }

要管理SQLite数据库,开源的SQLite GUI数据库浏览器工具非常有用。可以从这里下载。

SQLite是否应该用于所有数据库驱动的应用程序?不。像所有数据库一样,SQLite也有它的缺点。它不适合客户端服务器应用程序或作为网络数据库。它不适合多用户场景,并且在通过网络同时访问时可能会有严重的文件锁定问题。出于同样的原因,SQLite不适合多线程或多进程应用程序-数据库访问场景。

先决条件

Visual Studio .NET 2003 (C#)

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485