C# SQLite数据库的帮助类

发布时间 2023-09-01 03:52:45作者: soliang

SQLite帮助类的示例,它包含了常见的数据库操作方法,如打开和关闭数据库连接、执行SQL查询和更新语句、以及获取数据表中的数据等。

 

using System.Data.SQLite;

 

/// <summary>

/// SQLite帮助类

/// </summary>

public class SQLiteHelper

{

    private SQLiteConnection connection;

 

    /// <summary>

    /// 打开数据库连接

    /// </summary>

    /// <param name="dbPath">数据库文件路径</param>

    public void OpenConnection(string dbPath)

    {

        connection = new SQLiteConnection($"Data Source={dbPath};Version=3;");

        connection.Open();

    }

 

    /// <summary>

    /// 关闭数据库连接

    /// </summary>

    public void CloseConnection()

    {

        connection.Close();

    }

 

    /// <summary>

    /// 执行SQL查询语句

    /// </summary>

    /// <param name="sql">SQL查询语句</param>

    /// <returns>查询结果</returns>

    public DataTable ExecuteQuery(string sql)

    {

        var command = new SQLiteCommand(sql, connection);

        var adapter = new SQLiteDataAdapter(command);

        var dataTable = new DataTable();

        adapter.Fill(dataTable);

        return dataTable;

    }

 

    /// <summary>

    /// 执行SQL更新语句

    /// </summary>

    /// <param name="sql">SQL更新语句</param>

    /// <returns>更新的行数</returns>

    public int ExecuteUpdate(string sql)

    {

        var command = new SQLiteCommand(sql, connection);

        return command.ExecuteNonQuery();

    }

 

    /// <summary>

    /// 获取数据表中的所有数据

    /// </summary>

    /// <param name="tableName">数据表名称</param>

    /// <returns>数据表中的所有数据</returns>

    public DataTable GetAllData(string tableName)

    {

        var sql = $"SELECT * FROM {tableName}";

        return ExecuteQuery(sql);

    }

}

 

在上面的代码中,我们使用了SQLiteConnection类来打开和关闭数据库连接,使用SQLiteCommand类来执行SQL查询和更新语句,以及使用SQLiteDataAdapter类来获取数据表中的数据。我们还编写了一个GetAllData方法,该方法可以获取数据表中的所有数据。

 

使用这个SQLite帮助类非常简单。首先,我们需要创建一个SQLiteHelper对象,并调用OpenConnection方法打开数据库连接。然后,我们可以使用ExecuteQueryExecuteUpdate方法执行SQL查询和更新语句,或者使用GetAllData方法获取数据表中的所有数据。最后,我们需要调用CloseConnection方法关闭数据库连接。

 

以下是一个使用SQLite帮助类的示例:

 

var helper = new SQLiteHelper();

helper.OpenConnection("test.db");

 

// 执行SQL查询语句

var dataTable = helper.ExecuteQuery("SELECT * FROM users");

 

// 执行SQL更新语句

var rowsAffected = helper.ExecuteUpdate("UPDATE users SET name='John' WHERE id=1");

 

// 获取数据表中的所有数据

var allData = helper.GetAllData("users");

 

helper.CloseConnection();

总之,编写一个SQLite帮助类可以大大简化代码,并使数据库操作更加方便和可靠。

 

上面类也可以写成下面这样,它包含了连接数据库、执行查询、插入、更新和删除数据等常用操作。

 

using System.Data.SQLite;

 

public class SQLiteHelper

{

    private string connectionString;

 

    public SQLiteHelper(string connectionString)

    {

        this.connectionString = connectionString;

    }

 

    /// <summary>

    /// 执行查询并返回结果集

    /// </summary>

    public DataTable ExecuteQuery(string sql)

    {

        using (var connection = new SQLiteConnection(connectionString))

        {

            connection.Open();

            using (var command = new SQLiteCommand(sql, connection))

            {

                var adapter = new SQLiteDataAdapter(command);

                var dataTable = new DataTable();

                adapter.Fill(dataTable);

                return dataTable;

            }

        }

    }

 

    /// <summary>

    /// 执行插入、更新或删除操作

    /// </summary>

    public int ExecuteNonQuery(string sql)

    {

        using (var connection = new SQLiteConnection(connectionString))

        {

            connection.Open();

            using (var command = new SQLiteCommand(sql, connection))

            {

                return command.ExecuteNonQuery();

            }

        }

    }

 

    /// <summary>

    /// 执行查询并返回第一行第一列的结果

    /// </summary>

    public object ExecuteScalar(string sql)

    {

        using (var connection = new SQLiteConnection(connectionString))

        {

            connection.Open();

            using (var command = new SQLiteCommand(sql, connection))

            {

                return command.ExecuteScalar();

            }

        }

    }

 

    /// <summary>

    /// 执行事务

    /// </summary>

    public void ExecuteTransaction(Action<SQLiteTransaction> action)

    {

        using (var connection = new SQLiteConnection(connectionString))

        {

            connection.Open();

            using (var transaction = connection.BeginTransaction())

            {

                try

                {

                    action(transaction);

                    transaction.Commit();

                }

                catch (Exception)

                {

                    transaction.Rollback();

                    throw;

                }

            }

        }

    }

}

 

这个SQLite帮助类包含了以下方法:

 

ExecuteQuery:执行查询并返回结果集。

ExecuteNonQuery:执行插入、更新或删除操作。

ExecuteScalar:执行查询并返回第一行第一列的结果。

ExecuteTransaction:执行事务。

使用这个帮助类非常简单,只需要创建一个实例并调用相应的方法即可。例如:

 

var helper = new SQLiteHelper("Data Source=mydatabase.db");

var dataTable = helper.ExecuteQuery("SELECT * FROM mytable");

 

 

这个SQLite帮助类可以大大简化我们在C#中使用SQLite数据库的代码,使我们能够更加专注于业务逻辑的实现。

 

 

————————————————

版权声明:本文为CSDN博主「m0_58015531」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_58015531/article/details/131327712