当前位置:首页 > 行业动态 > 正文

如何在C中简单地嵌入SQLite数据库?

在C#中嵌入SQLite数据库,可以使用 System.Data.SQLite库。通过NuGet安装该包,然后在代码中使用 SQLiteConnection和 SQLiteCommand类连接和操作数据库。

在C#中嵌入SQLite数据库是一种非常常见的需求,尤其是在开发桌面应用程序或小型项目时,SQLite是一个轻量级的、嵌入式的关系型数据库,它非常适合这种应用场景,下面详细介绍如何在C#项目中嵌入SQLite数据库。

如何在C中简单地嵌入SQLite数据库?  第1张

安装SQLite和相关库

1、安装Visual Studio:确保你已经安装了Visual Studio,这是进行C#开发的集成开发环境(IDE)。

2、安装SQLite NuGet包

打开你的解决方案。

右键点击解决方案资源管理器中的项目,选择“管理NuGet程序包”。

搜索“System.Data.SQLite”,然后点击“安装”。

3、引用命名空间:在你的C#代码文件中添加以下命名空间引用:

   using System.Data.SQLite;

创建和连接数据库

1、创建SQLite数据库文件:可以通过SQLite命令行工具或者直接在代码中创建。

   string connectionString = "Data Source=mydatabase.db;Version=3;";
   using (var connection = new SQLiteConnection(connectionString))
   {
       connection.Open();
       IDbCommand dbcmd = connection.CreateCommand();
       string sql = "CREATE TABLE IF NOT EXISTS Highscores (name TEXT, score INTEGER)";
       dbcmd.CommandText = sql;
       dbcmd.ExecuteNonQuery();
       dbcmd.Dispose();
       connection.Close();
   }

2、连接到数据库:通过SQLiteConnection对象来连接数据库。

   string connectionString = "Data Source=mydatabase.db;Version=3;";
   using (var connection = new SQLiteConnection(connectionString))
   {
       connection.Open();
       // Your database operations here
       connection.Close();
   }

执行SQL查询和更新

1、执行SELECT查询

   string connectionString = "Data Source=mydatabase.db;Version=3;";
   using (var connection = new SQLiteConnection(connectionString))
   {
       connection.Open();
       IDbCommand dbcmd = connection.CreateCommand();
       string sql = "SELECT * FROM Highscores";
       dbcmd.CommandText = sql;
       using (IDataReader reader = dbcmd.ExecuteReader())
       {
           while (reader.Read())
           {
               Console.WriteLine(String.Format("{0}, {1}", reader["name"], reader["score"]));
           }
       }
       connection.Close();
   }

2、执行INSERT操作

   string connectionString = "Data Source=mydatabase.db;Version=3;";
   using (var connection = new SQLiteConnection(connectionString))
   {
       connection.Open();
       IDbCommand dbcmd = connection.CreateCommand();
       string sql = "INSERT INTO Highscores (name, score) VALUES (@name, @score)";
       dbcmd.CommandText = sql;
       dbcmd.Parameters.Add(new SQLiteParameter("@name", name));
       dbcmd.Parameters.Add(new SQLiteParameter("@score", score));
       dbcmd.ExecuteNonQuery();
       connection.Close();
   }

3、执行UPDATE操作

   string connectionString = "Data Source=mydatabase.db;Version=3;";
   using (var connection = new SQLiteConnection(connectionString))
   {
       connection.Open();
       IDbCommand dbcmd = connection.CreateCommand();
       string sql = "UPDATE Highscores SET score = @newscore WHERE name = @name";
       dbcmd.CommandText = sql;
       dbcmd.Parameters.Add(new SQLiteParameter("@name", name));
       dbcmd.Parameters.Add(new SQLiteParameter("@newscore", newScore));
       dbcmd.ExecuteNonQuery();
       connection.Close();
   }

4、执行DELETE操作

   string connectionString = "Data Source=mydatabase.db;Version=3;";
   using (var connection = new SQLiteConnection(connectionString))
   {
       connection.Open();
       IDbCommand dbcmd = connection.CreateCommand();
       string sql = "DELETE FROM Highscores WHERE name = @name";
       dbcmd.CommandText = sql;
       dbcmd.Parameters.Add(new SQLiteParameter("@name", name));
       dbcmd.ExecuteNonQuery();
       connection.Close();
   }

示例表格:Highscores表结构

字段名 数据类型 说明
name TEXT 玩家名称
score INTEGER 玩家得分

常见问题及解答(FAQs)

Q1: SQLite数据库文件在哪里生成?<br>

A1: SQLite数据库文件会在你指定的路径下生成,默认情况下是项目的输出目录(如bin/Debug或bin/Release),如果你没有指定完整路径,它会在当前工作目录下生成。"Data Source=mydatabase.db"会在当前工作目录下生成一个名为"mydatabase.db"的文件。

Q2: 如何确保SQLite数据库文件在部署时包含在应用程序中?<br>

A2: 你可以在项目属性中设置SQLite数据库文件的“生成操作”为“内容”,并将其“复制到输出目录”设置为“始终复制”或“如果较新则复制”,这样,SQLite数据库文件将在构建时被复制到输出目录,并随应用程序一起部署,你还可以使用相对路径来引用数据库文件,以确保它在运行时能够正确找到。

小编有话说

嵌入SQLite数据库到C#项目中是一个简单而高效的方法,尤其适合开发桌面应用程序和小型项目,通过使用NuGet包管理器安装System.Data.SQLite,开发者可以方便地在C#项目中使用SQLite,无论是创建数据库、执行查询还是更新数据,都可以通过简单的几行代码实现,希望这篇文章能帮助你快速上手在C#中嵌入SQLite数据库的开发。

0