C# .NET - C#操作数据库 - C#与SQLite
C# .NET 7.0访问操作SQLite数据库示例
本示例将介绍在.NET 7上使用SQLite数据库的方法。
HovertreeSqliteKit是一个开源、免费、跨平台的SQLite数据库操作工具。
此资源支持在.NET 7和.NET 6等中使用SQLite数据库。
以下先介绍使用步骤,文后附有源码下载。

使用Visual Studio 2022创建新项目:
选择“Windows窗体应用”(用于创建.NET Windows窗体(WinForms)应用的项目模板),然后点击下一步

项目名称这里填写HovertreeSqliteTest,然后点击下一步

框架选择“.NET 7.0(标准期限支持)”,点击创建。

然后来到“解决方案资源管理器”,右键点击“解决方案'HovertreeSqliteTest'”,在弹出菜单点击“在文件资源管理器中打开文件夹”,来到解决方案的文件夹里,然后把下载的HovertreeSqliteTest压缩包解压后,把两个文件夹“HovertreeSqliteBase”和“HovertreeSqliteDll”,复制到刚才打开的解决方案的文件夹“HovertreeSqilteTest”下。复制完成后,解决方案目录下的内容如下图:


然后在解决方案中添现有项目HovertreeSqliteBase。添加完成后如下图:


然后展开项目HovertreeSqilteTest,右键点击“依赖项”,在弹出菜单上选择“添加项目引用(R)...”,添加项目引用HovertreeSqliteBase.csproj(在文件夹HovertreeSqliteBase下),如下图:


然后还需要添加依赖项HovertreeSqliteKit.dll(程序集在HovertreeSqliteDll文件夹下),如下图:


添加完成后如下图:


后续需要在窗体上添加控件和相应的代码,步骤请参考下载的源代码,运行效果如下图:

示例源代码:
/*
使用HovertreeSqliteKit工具操作SQLite数据的示例,C# 11,Visual Studio 2022, .NET 7.0
CopyRight hovertree.com
by 何问起
使用方法:https://hovertree.com/h/bjag/rfl1yu40.htm
*/
using Hovertree.HtDb.HovertreeSqliteKit;

namespace HovertreeSqilteTest
{
public partial class Form1 : Form
{
string h_dbfile;
HovertreeSqliteDb h_sqliteDb;
public Form1()
{
InitializeComponent();
h_dbfile = Environment.CurrentDirectory + "\\HovertreeTestDb1.db";
h_sqliteDb = new HovertreeSqliteDb(h_dbfile);
}


/// <summary>
/// 打开数据库连接
/// </summary>
/// <returns>成功返回treu,失败返回false</returns>
bool HtOpenDb()
{
if (h_sqliteDb == null)
return false;

return h_sqliteDb.HtOpen();
}

/// <summary>
/// 检查数据库中是否存在表
/// </summary>
/// <param name="tableName">表名</param>
/// <returns>成功返回treu,失败返回false</returns>
bool HtCheck(string tableName)
{
return h_sqliteDb.HtIsTableExist(tableName);
}

private void buttonHtCheck_Click(object sender, EventArgs e)
{
if (!HtOpenDb())
{
labelHtResult.Text = "连接数据库失败:" + h_sqliteDb.HtStringOfConnection;
}
bool h_result;
h_result = HtCheck(textBoxHtTableName.Text);

if (h_result)
{
labelHtResult.Text = "表:" + textBoxHtTableName.Text + ",存在√";
}
else
{
labelHtResult.Text = "表:" + textBoxHtTableName.Text + ",不存在×";
}
}

/// <summary>
/// 检查表名格式
/// </summary>
/// <param name="tableName"></param>
/// <returns>返回空字符串表示没有检查出异常</returns>
string HtCheckTableName(string tableName)
{
if (string.IsNullOrWhiteSpace(tableName))
return "表名不可为空";
return string.Empty;
}

/// <summary>
/// 新建表
/// </summary>
/// <param name="tableName">表名</param>
/// <returns>返回空字符串表示新建表成功,否则表示失败原因</returns>
string HtCreateTable(string tableName)
{
if (!HtOpenDb())
{
labelHtResult.Text = "连接数据库失败:" + h_sqliteDb.HtStringOfConnection;
}

string m_tips = HtCheckTableName(tableName);
if (m_tips != string.Empty)
{
return m_tips;
}
if (HtCheck(tableName))
{
return "该表名已经存在";
}

string m_sql = "CREATE TABLE " + HtDoubleQuote(tableName.Trim()) + " ( htID INTEGER PRIMARY KEY AUTOINCREMENT,htName VARCHAR NOT NULL,htCreateTime DATETIME DEFAULT (now() )) ";
int m_i = h_sqliteDb.HtExecuteSql(m_sql);

if (m_i == 0)
{
return string.Empty;
}
else
{
return "新建表失败";
}
}

string HtDoubleQuote(string sql)
{
if (string.IsNullOrWhiteSpace(sql))
return string.Empty;

return sql.Replace("'", "''");
}

private void buttonHtCreateTable_Click(object sender, EventArgs e)
{
string m_tips = HtCreateTable(textBoxHtTableName.Text);
if (m_tips == string.Empty) { labelHtResult.Text = "新建表成功" + DateTime.Now.ToString(); }
else
{
labelHtResult.Text = m_tips;
}
}
}
}
HovertreeSqliteDb类,位于命名空间Hovertree.HtDb.HovertreeSqliteKit下。可对SQLite数据进行执行SQL语句,查询表记录等。

收藏 列表

评论:

导航