Вспомогательный класс для базы данных C# SQLite

Пример вспомогательного класса 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, чтобы открыть соединение с базой данных. Затем мы можем использовать методы ExecuteQuery и ExecuteUpdate для выполнения 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 = новый SQLiteHelper("Источник данных=mydatabase.db");
var dataTable = helper.ExecuteQuery("SELECT * FROM mytable");


Этот вспомогательный класс SQLite может значительно упростить наш код для использования базы данных SQLite на C#, позволяя нам больше сосредоточиться на реализации бизнес-логики.

Вышеупомянутый контент используется для записи вашего собственного обучения и обмена, а обмен продвигает технологии вперед!

Технология происходит от инновации свободы мысли, независимого мышления, диалектического анализа, логического мышления и свободы человека служить различным удобствам человеческой жизни, а не использовать технологию для создания идеологических разногласий и осады для создания глупости; технологии бывают хорошими и плохими, Хорошим людям лучше использовать технологии, а плохим — хуже. Рекомендуемые книги: "1984" Джорджа Оруэлла, "Мы" Замятина, "О дивный новый мир" Олдоса Хаксли, есть несколько переводов, просто выберите понравившийся и хороший; Есть "Утопия" Платона, [Франция] Монтескье ' s «О духе закона», Хайека «Дорога к рабству» (гонконгская версия) (гонконгская версия лучше переведена с материковой версии, а та, что с хорошим английским, — лучшая. Красиво выглядящая оригинальная английская версия ), и теперь интернет-магазин продает его! Чтение хороших книг, чтение книг, которые большинство людей никогда не читали и не в классах, и чтение знаний, недоступных в этой стране, может усилить своего рода спекулятивное мышление и мудрость, и только тогда мы сможем выбраться из пещеры узкого мышления. и предрассудки!

Платон написал пещерную теорию в седьмом томе своего шедевра «Утопия»: группа людей, находившихся в заточении и живших в пещере с детства, при свете снаружи пещеры видели черные тени, когда смотрели внутрь, и черные тени когда выглянули наружу.Яркое море и небо, тем ярче ты выглядишь!

Хорошо информированные и толерантные люди более уверены в себе и разнообразны в своем мышлении.Культура толерантности делает людей сильнее.Чем увереннее и толерантнее, тем сильнее! Толерантность позволяет пользоваться интернетом, телефоном, различными электроприборами, автомобилями, чипами, железными дорогами, скоростной железной дорогой...  

おすすめ

転載: blog.csdn.net/m0_58015531/article/details/131327712