在 C# 中调用 SQLite 数据库

数据库
在C#中,通过SQLite数据库进行数据存储和检索是一项常见任务。本文将介绍如何在C#中使用SQLite数据库,并提供相应的示例代码。

SQLite 是一种轻量级的嵌入式关系型数据库,广泛用于移动应用、桌面应用以及嵌入式系统中。在C#中,通过SQLite数据库进行数据存储和检索是一项常见任务。本文将介绍如何在C#中使用SQLite数据库,并提供相应的示例代码。

准备工作

  • 安装SQLite库: 在C#项目中,我们通常使用System.Data.SQLite库来与SQLite数据库进行交互。你可以通过NuGet包管理器来安装这个库。常用的包有System.Data.SQLite和Microsoft.Data.Sqlite。本文将使用Microsoft.Data.Sqlite。在Visual Studio中,右键点击你的项目,选择“管理NuGet包”,然后搜索Microsoft.Data.Sqlite并安装。
  • 创建SQLite数据库: 如果你还没有SQLite数据库,可以使用SQLite工具(如DB Browser for SQLite)创建一个数据库文件,或者在代码中动态创建。

示例代码

下面是一个完整的示例,展示如何在C#中使用SQLite数据库进行创建表、插入数据、查询数据和更新数据等操作。

1. 创建SQLite连接

首先,我们需要创建一个SQLite连接。

using System;
using Microsoft.Data.Sqlite;

class Program
{
    private static string connectionString = "Data Source=mydatabase.db";

    static void Main(string[] args)
    {
        using (var connection = new SqliteConnection(connectionString))
        {
            connection.Open();

            // 在这里进行数据库操作
            CreateTable(connection);
            InsertData(connection);
            QueryData(connection);
            UpdateData(connection);
        }
    }

    // 其他数据库操作方法...
}

2. 创建表

接下来,我们创建一个表。例如,我们创建一个名为Users的表,包含Id和Name两个字段。

static void CreateTable(SqliteConnection connection)
{
    string sql = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY, Name TEXT)";

    using (var command = new SqliteCommand(sql, connection))
    {
        command.ExecuteNonQuery();
        Console.WriteLine("Table 'Users' created.");
    }
}

3. 插入数据

向Users表中插入一些数据。

static void InsertData(SqliteConnection connection)
{
    string sql = "INSERT INTO Users (Name) VALUES (@Name)";

    using (var command = new SqliteCommand(sql, connection))
    {
        command.Parameters.AddWithValue("@Name", "Alice");
        command.ExecuteNonQuery();

        command.Parameters.AddWithValue("@Name", "Bob");
        command.ExecuteNonQuery();

        Console.WriteLine("Data inserted into 'Users'.");
    }
}

4. 查询数据

从Users表中查询数据并输出。

static void QueryData(SqliteConnection connection)
{
    string sql = "SELECT Id, Name FROM Users";

    using (var command = new SqliteCommand(sql, connection))
    {
        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}");
            }
        }
    }
}

5. 更新数据

更新Users表中的数据。

static void UpdateData(SqliteConnection connection)
{
    string sql = "UPDATE Users SET Name = @NewName WHERE Id = @Id";

    using (var command = new SqliteCommand(sql, connection))
    {
        command.Parameters.AddWithValue("@NewName", "Charlie");
        command.Parameters.AddWithValue("@Id", 1);
        command.ExecuteNonQuery();

        Console.WriteLine("Data updated in 'Users'.");
    }
}

完整代码

以下是完整代码的汇总:

using System;
using Microsoft.Data.Sqlite;

class Program
{
    private static string connectionString = "Data Source=mydatabase.db";

    static void Main(string[] args)
    {
        using (var connection = new SqliteConnection(connectionString))
        {
            connection.Open();

            CreateTable(connection);
            InsertData(connection);
            QueryData(connection);
            UpdateData(connection);
            QueryData(connection);  // 再次查询以查看更新结果
        }
    }

    static void CreateTable(SqliteConnection connection)
    {
        string sql = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY, Name TEXT)";

        using (var command = new SqliteCommand(sql, connection))
        {
            command.ExecuteNonQuery();
            Console.WriteLine("Table 'Users' created.");
        }
    }

    static void InsertData(SqliteConnection connection)
    {
        string sql = "INSERT INTO Users (Name) VALUES (@Name)";

        using (var command = new SqliteCommand(sql, connection))
        {
            command.Parameters.AddWithValue("@Name", "Alice");
            command.ExecuteNonQuery();

            command.Parameters.AddWithValue("@Name", "Bob");
            command.ExecuteNonQuery();

            Console.WriteLine("Data inserted into 'Users'.");
        }
    }

    static void QueryData(SqliteConnection connection)
    {
        string sql = "SELECT Id, Name FROM Users";

        using (var command = new SqliteCommand(sql, connection))
        {
            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}");
                }
            }
        }
    }

    static void UpdateData(SqliteConnection connection)
    {
        string sql = "UPDATE Users SET Name = @NewName WHERE Id = @Id";

        using (var command = new SqliteCommand(sql, connection))
        {
            command.Parameters.AddWithValue("@NewName", "Charlie");
            command.Parameters.AddWithValue("@Id", 1);
            command.ExecuteNonQuery();

            Console.WriteLine("Data updated in 'Users'.");
        }
    }
}

结论

通过本文,我们了解了如何在C#中使用SQLite数据库进行基本的CRUD操作。使用Microsoft.Data.Sqlite库,可以方便地创建连接、执行SQL命令以及查询和处理结果。SQLite的轻量级特性使得它非常适合嵌入式和本地存储的应用场景。希望本文对你有所帮助,欢迎你在项目中尝试使用SQLite数据库!

责任编辑:赵宁宁 来源: 后端Q
相关推荐

2009-08-24 18:09:13

C#调用Oracle数

2024-02-28 08:06:17

2009-08-11 14:26:56

C#动态调用WebSe

2011-03-17 15:59:37

c#数据库

2010-12-20 09:44:36

SQLite.C#

2009-08-05 16:49:42

C#中调用dll

2024-04-18 09:56:16

2009-08-11 13:35:13

C# Berkeley

2013-04-01 10:49:51

iOS开发sqlite数据库

2011-08-30 14:15:34

QTSQLite数据库

2009-08-11 14:51:47

C#读取Excel中数

2009-03-19 10:08:09

C#数据库查询

2010-10-26 15:21:11

连接Oracle数据库

2009-08-17 17:42:57

C#数据库操作类

2009-07-31 17:01:21

C#存取Access数

2009-08-06 18:10:06

C#数据库事务

2009-08-07 16:19:00

C#下数据库编程

2009-08-25 14:05:06

C#连接数据库代码

2009-09-04 17:23:21

C#数据库连接对象

2009-08-07 16:19:00

C#下数据库编程
点赞
收藏

51CTO技术栈公众号