有段时间未更新过博客了,觉得有用的对象,有时间的话会继续更新
Sqlite数据库操作介绍以及类库介绍
1. VS2022中,用Nug包管理器,引入System.Data.sqlite包
转载请标明出处:Python Excellent的博客
2. 新建一个Sqlite帮助类SqliteHelper.cs
具体方法如下:基本可以应对增删改查,以及事务处理数据库,保证当数据库操作数据失败,具有回滚操作,而不影响数据库的查询。
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SQLite;
using System.Data.Common;
using System.Collections;
namespace ZYL9527
{
class SqliteHelper : IDisposable
{
public SQLiteConnection conn;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
if (conn != null)
{
conn.Dispose();
conn = null;
}
}
~SqliteHelper()
{
Dispose(false);
}
/// <summary>
/// 构造函数。
/// </summary>
/// <param name="dataBaseName">数据库名</param>
public SqliteHelper(string dataBaseName)
{
string connString = string.Format(@"Data Source={0}", dataBaseName);
conn = new SQLiteConnection(connString);
//conn.Open();
}
/// <summary>
/// 手动打开数据库。
/// </summary>
public bool SqliteOpen()
{
if (conn == null || conn.State != ConnectionState.Closed)
return false;
try
{
conn.Open();
return true;
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 通过执行SQL语句,获取表中数据。
/// </summary>
/// <param name="sError">错误信息</param>
/// <param name="sSQL">执行的SQL语句</param>
public DataTable GetDataTable(out string sError, string sSQL)
{
DataTable dt = null;
sError = string.Empty;
try
{
SQLiteCommand cmd = new SQLiteCommand() {
CommandText = sSQL, Connection = conn };
SQLiteDataAdapter dao = new SQLiteDataAdapter(cmd);
dt = new DataTable();
dao.Fill(dt);
//SQLiteDataReader dr = cmd.ExecuteReader();
//if (dr.HasRows)
// dt.Load(dr);
}
catch (Exception e)
{
sError = e.Message;
}
return dt;
}
/// <summary>
/// 通过执行SQL语句,获取表中数据个数。
///