新闻中心

C#如何连接SQLite数据库 C# System.Data.SQLite的使用方法

2025-11-26
浏览次数:
返回列表
使用System.Data.SQLite库可实现C#中对SQLite数据库的连接与操作。1. 通过NuGet安装System.Data.SQLite包;2. 引入using System.Data.SQLite命名空间;3. 使用SQLiteConnection类配合连接字符串(如"Data Source=example.db;Version=3;")连接或创建数据库;4. 利用SQLiteCommand执行建表、插入等SQL语句,推荐使用参数化查询防止注入;5. 通过SQLiteCommand与SQLiteDataReader读取数据;6. 多写入操作应使用SQLiteTransaction确保一致性;7. 注意平台兼容性及资源释放。该库适用于.NET Framework与.NET Core,功能完整,适合中小型项目。

c#如何连接sqlite数据库 c# system.data.sqlite的使用方法

在C#中连接和操作SQLite数据库,最常用的方式是使用 System.Data.SQLite 库。它是一个开源的 ADO.NET 数据提供程序,专为 SQLite 设计,支持 .NET Framework 和 .NET Core/.NET 5+。以下是详细的使用方法。

1. 安装 System.Data.SQLite

要使用 System.Data.sqlite,你需要先安装对应的 NuGet 包:

打开 Visual Studio → 右键项目 → 管理 NuGet 程序包 → 搜索并安装 System.Data.SQLite

或者通过 NuGet 包管理器控制台运行命令:

Install-Package System.Data.SQLite

安装后会自动添加对 System.Data.SQLite.dll 的引用。

2. 引入命名空间

在代码文件顶部引入必要的命名空间:

using System.Data.SQLite;

3. 连接 SQLite 数据库

使用 SQLiteConnection 类来建立数据库连接。如果数据库文件不存在,可以自动创建。

Motiff妙多 Motiff妙多

Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

Motiff妙多 334 查看详情 Motiff妙多

示例:连接到本地数据库文件(若不存在则创建)

string connectionString = "Data Source=example.db;Version=3;New=True;Compress=True;";
using (var connection = new SQLiteConnection(connectionString))
{
    connection.Open();
    Console.WriteLine("数据库连接成功!");
}

常见连接字符串参数说明:

  • Data Source=example.db:指定数据库文件路径
  • Version=3:使用 SQLite3 版本
  • New=True:强制创建新数据库(可配合其他参数使用)
  • FailIfMissing=False:文件不存在时不报错(默认会尝试创建)

4. 创建表并插入数据

使用 SQLiteCommand 执行 SQL 语句。

using (var connection = new SQLiteConnection("Data Source=test.db;Version=3;"))
{
    connection.Open();

    // 创建表
    string createTableSql = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY, Name TEXT, Age INTEGER)";
    using (var cmd = new SQLiteCommand(createTableSql, connection))
    {
        cmd.ExecuteNonQuery();
    }

    // 插入数据
    string insertSql = "INSERT INTO Users (Name, Age) VALUES (@name, @age)";
    using (var cmd = new SQLiteCommand(insertSql, connection))
    {
        cmd.Parameters.AddWithValue("@name", "张三");
        cmd.Parameters.AddWithValue("@age", 25);
        cmd.ExecuteNonQuery();
    }
}

5. 查询数据

使用 SQLiteCommand 配合 SQLiteDataReader 读取查询结果。

string selectSql = "SELECT Id, Name, Age FROM Users";
using (var cmd = new SQLiteCommand(selectSql, connection))
using (var reader = cmd.ExecuteReader())
{
    while (reader.Read())
    {
        int id = reader.GetInt32("Id");
        string name = reader.GetString("Name");
        int age = reader.GetInt32("Age");
        Console.WriteLine($"ID: {id}, 姓名: {name}, 年龄: {age}");
    }
}

6. 使用事务处理

对于多条写入操作,建议使用事务确保数据一致性。

using (var transaction = connection.BeginTransaction())
{
    try
    {
        var cmd = connection.CreateCommand();
        cmd.Transaction = transaction;

        cmd.CommandText = "INSERT INTO Users (Name, Age) VALUES ('李四', 30)";
        cmd.ExecuteNonQuery();

        cmd.CommandText = "INSERT INTO Users (Name, Age) VALUES ('王五', 28)";
        cmd.ExecuteNonQuery();

        transaction.Commit();
    }
    catch
    {
        transaction.Rollback();
        throw;
    }
}

7. 注意事项

  • 确保目标机器上有正确的运行时支持(x86/x64),System.Data.SQLite 内部依赖原生库
  • 在 .NET Core 或跨平台项目中,也可考虑使用 Microsoft.Data.Sqlite(轻量且跨平台友好)
  • 避免拼接 SQL 字符串,始终使用参数化查询防止 SQL 注入
  • 使用 using 语句确保连接和命令对象被正确释放
基本上就这些。System.Data.SQLite 功能完整,适合中小型项目快速集成 SQLite 支持。

以上就是C#如何连接SQLite数据库 C# System.Data.SQLite的使用方法的详细内容,更多请关注其它相关文章!


# 上有  # 福建营销推广商家公司  # 新媒体推广营销模块  # 网站优化seo培训课程  # 开封网站关键词优化工具  # 嘉兴seo顾问  # 西安seo技术专注乐云seo  # 网络营销如何在网上推广  # 推广营销怎么做最好  # 白色营销推广推荐怎么写  # 松岗网站推广招聘  # 它是  # 右键  # c#  # 适用于  # 推荐使用  # 迭代  # 不存在  # 数据库文件  # 如何使用  # 遍历  # .net  # sql语句  # microsoft  # ai  # sqlite 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何有效阻止外部脚本意外修改内联样式的高度属性  学习通网页版官方登录 超星学习通电脑端入口指南  微信群消息显示延迟如何解决 微信群消息刷新优化方法  微信网页版扫码登录入口 微信网页版二维码登录入口  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  高德地图公交到站提醒失败如何解决 高德提醒权限设置  PHP 枚举:根据字符串获取枚举案例的策略与实现  Mac怎么锁定备忘录_Mac备忘录加密设置教程  Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口  LINQ to XML为何解析失败? 深入理解C# XDocument的异常处理  Node.js 中使用 node-cron 实现定时 API 数据抓取与处理  单射、满射与双射的关系 一文理清所有逻辑  铃兰之剑为这和平的世界希里技能组及加点推荐  Python多版本共存与虚拟环境管理深度指南  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  漫蛙官网正版漫画入口 漫蛙2官方网页登录地址  taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】  在J*a项目里如何构建对象之间的契约_接口约束的实际落地  限制HTML日期输入框的日期选择范围  HTML5原生日期选择器与jQuery UI:实现日期选择器的联动与程序化控制  J*a实现学校排课程序_面向对象结构化项目示例  Golang如何实现容器化日志收集与分析_Golang容器日志收集分析方法  vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧  文心一言怎样用批量生成做多版文案_文心一言用批量生成做多版文案【批量创作】  葱吃多了会怎样 葱吃多了会伤胃吗  探索高级语言到C/C++的转译路径:以Go为例及内存管理策略  迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法  c++ dfs和bfs代码 c++深度广度优先搜索算法  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  韩剧圈正版入口页面_韩剧圈官网登录链接  品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程  CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠  outlook中文官网入口地址 outlook官方中文版直达首页链接  如何使用 Excel 发布器与 Power BI 分享 Excel 洞察  php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】  怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】  React/Next.js中实现列表项的动态选择与移动  将HTML动态表格多行数据保存到Google Sheet的教程  Bilibili动漫最新防封地址发布-Bilibili动漫2025年最稳正版入口推荐  J*aScript类型检查_j*ascript代码规范  Go语言中高效处理x-www-form-urlencoded表单数据  提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案  Shopware订单对象中获取产品自定义字段的正确方法  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  Django模型中自动计算可用余额的实现方法  免费抖音短视频入口_抖音网页版短视频免费通道  QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口  离线运行Go语言之旅:本地部署与GOPATH配置指南  怎么去除衣服上的口红印_生活小妙招教你用酒精轻松擦除  海棠电脑版入口_通过电脑访问海棠官网阅读 

搜索