C#与数据库SQLite:在C#项目中使用SQLite

下面这两个是不同的:

 

1.System.Data.SQLite ( http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki)

2.SQLite(https://www.sqlite.org/download.html)

尽管是一个网站,但是,是两个产品。前者可用于C#,后者可以直接使用。前者的安装目录包含的文件很多,后者包含很少。详细差别可以自行查找。

在C#项目中使用的是System.Data.SQLite,所以,首先要下载并安装System.Data.SQLite 。

然后在项目中添加System.Data.SQLite.dll:项目右键——添加——引用——浏览——安装目录——System.Data.SQLite.dll——确定。如下图:

添加完成后,在项目的引用目录中会出现System.Data.SQLite,如下图:

这时候就可以新建项目使用SQLite了。需要using System.Data.SQLite;此时在项目的bin/Debug文件夹中会有System.Data.SQLite.dll和System.Data.SQLite.dll.config。

C#中数据库访问使用的是ADO.NET模型。使用SQLite也不例外。

(如果有问题,可以从System.Data.SQLite的安装目录中复制System.Data.SQLite.dll.config到项目的文件夹中,和上图中的AllForms、Properties等在相同文件夹中)

(上图中代码使用的并不是SQLite数据库,而是SQL Server数据库)

在C#项目中创建数据库:

var fileName = "D:/testDB.db";

SQLiteConnection.createFile(fileName);

相应位置就出现了数据库文件。

这时候可以用SQLite的图形界面管理工具验证该数据库。

成功建立数据库。接下来在VS中C#项目里连接该数据库并建立一个表。

连接数据库:

string databaseFileName = "D:/testDB.db";
string connectionString = "data source = " + databaseFileName;
SQLiteConnection dbConnection = new SQLiteConnection(connectionString);
dbConnection.Open();

此时出了些问题:

1.缺少SQLite.Interop.dll。

只要从SQLite的安装目录中的bin目录下找到该文件,并复制到项目目录bin的debug中即可。

2.试图加载格式不正确的程序。

原来这是64位应用32位产生的问题。就是平台和软件的版本不兼容。我的电脑是64位的,我装的System.Data.SQLite也是64位的,但是项目属性——生成——平台目标却是Any CPU(首选32位),将平台目标改为64位后,问题消失了。

创建一个表:

            string[] colNames = new string[] { "ID", "Name", "Age", "Email" };
            string[] colTypes = new string[] { "INTEGER", "TEXT", "INTEGER", "TEXT" };

            string tableName = "table1";

            string queryString = "CREATE TABLE IF NOT EXISTS " + tableName + "( " + colNames[0] + " " + colTypes[0];

            for (int i = 1; i < colNames.Length; i++)
            {
                queryString += ", " + colNames[i] + " " + colTypes[i];
            }
            queryString += "  ) ";
            SQLiteCommand dbCommand = dbConnection.CreateCommand();
            dbCommand.CommandText = queryString;
            SQLiteDataReader dataReader = dbCommand.ExecuteReader();

成功连接数据库并建立了一个表,用图形界面管理工具,会看到:

可以在C#项目中建立数据库、连接数据库、建立表,其他操作还没有测试。

 

也可以通过VS菜单栏中的项目——管理NuGet程序包——浏览——System.Data.Sqlite——安装

使用此方法时要注意项目的.NET Framework框架的版本,因为可能会出现添加了System.Data.Sqlite后在项目中却不能使用Sqlite的问题,using找不到此类型。

 

展开阅读全文

没有更多推荐了,返回首页