暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在C#中调用SQLite数据库

后端Q 2024-09-20
479

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

准备工作

  1. 安装SQLite库: 在C#项目中,我们通常使用System.Data.SQLite
    库来与SQLite数据库进行交互。你可以通过NuGet包管理器来安装这个库。常用的包有System.Data.SQLite
    Microsoft.Data.Sqlite
    。本文将使用Microsoft.Data.Sqlite

    在Visual Studio中,右键点击你的项目,选择“管理NuGet包”,然后搜索Microsoft.Data.Sqlite
    并安装。

  2. 创建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,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论