新闻中心

C# 怎么使用 Dapper 连接数据库_C# Dapper 数据库连接操作教程

2025-11-14
浏览次数:
返回列表
Dapper是.NET平台下的轻量级ORM工具,性能优于Entity Framework,适合高效执行SQL查询。1. 通过NuGet安装Dapper包;2. 在appsettings.json中配置数据库连接字符串;3. 使用IDbConnection接口进行数据库操作,如Query查询、Execute插入更新删除;4. 遵循参数化查询防注入、using语句管理连接等最佳实践。

c# 怎么使用 dapper 连接数据库_c# dapper 数据库连接操作教程

Dapper 是一个轻量级的 ORM(对象关系映射)工具,适用于 C# 和 .NET 平台。它在性能上优于 Entity Framework 等重量级框架,特别适合需要高效执行 SQL 查询的场景。使用 Dapper 连接数据库非常简单,只需要通过 ADO.NET 提供的 IDbConnection 接口即可实现。

1. 安装 Dapper

在项目中使用 Dapper 前,需先通过 NuGet 安装 Dapper 包:

打开 NuGet 包管理器控制台,运行以下命令:

Install-Package Dapper

安装完成后,就可以在代码中引用 Dapper 命名空间了。

2. 配置数据库连接字符串

在 appsettings.json 或配置文件中添加数据库连接信息。例如,使用 SQL Server 时:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=TestDB;User Id=sa;Password=your_password;TrustServerCertificate=true;"
  }
}

在程序启动时读取该连接字符串,通常在 Program.csStartup.cs 中处理(根据 .NET 版本不同)。

3. 使用 Dapper 执行数据库操作

下面以 SQL Server 为例,演示如何使用 Dapper 进行常见数据库操作。

示例:查询数据

ShopEx助理 ShopEx助理

一个类似淘宝助理、ebay助理的客户端程序,用来方便的在本地处理商店数据,并能够在本地商店、网上商店和第三方平台之间实现数据上传下载功能的工具。功能说明如下:1.连接本地商店:您可以使用ShopEx助理连接一个本地安装的商店系统,这样就可以使用助理对本地商店的商品数据进行编辑等操作,并且数据也将存放在本地商店数据库中。默认是选择“本地未安装商店”,本地还未安

ShopEx助理 0 查看详情 ShopEx助理

假设有一个 User 表,对应实体类如下:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
}

使用 Dapper 查询所有用户:

using (var connection = new SqlConnection(connectionString))
{
    var users = connection.Query<User>("SELECT * FROM Users");
    foreach (var user in users)
    {
        Console.WriteLine($"{user.Id}: {user.Name} - {user.Email}");
    }
}

示例:插入数据

使用参数化 SQL 防止注入攻击:

var sql = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
using (var connection = new SqlConnection(connectionString))
{
    var affectedRows = connection.Execute(sql, new { Name = "张三", Email = "zhangsan@example.com" });
    Console.WriteLine($"插入了 {affectedRows} 条记录");
}

示例:更新数据

var sql = "UPDATE Users SET Email = @Email WHERE Id = @Id";
using (var connection = new SqlConnection(connectionString))
{
    var updated = connection.Execute(sql, new { Id = 1, Email = "newemail@example.com" });
    Console.WriteLine($"更新了 {updated} 条记录");
}

示例:删除数据

var sql = "DELETE FROM Users WHERE Id = @Id";
using (var connection = new SqlConnection(connectionString))
{
    var deleted = connection.Execute(sql, new { Id = 1 });
    Console.WriteLine($"删除了 {deleted} 条记录");
}

4. 注意事项与最佳实践

  • 始终使用 using 语句确保数据库连接正确释放
  • 避免拼接 SQL 字符串,使用 Dapper 的参数化机制防止 SQL 注入
  • Dapper 不支持自动迁移,表结构需手动创建或配合其他工具管理
  • 对于复杂查询,Dapper 支持多结果集映射(QueryMultiple)、事务操作等高级功能

基本上就这些。Dapper 的优势在于简洁和高性能,适合熟悉 SQL 又希望减少 ADO.NET 模板代码的开发者。掌握基本的 Query、Execute 方法后,就能快速完成大多数数据库操作任务。

以上就是C# 怎么使用 Dapper 连接数据库_C# Dapper 数据库连接操作教程的详细内容,更多请关注其它相关文章!


# 放在  # 网站海外推广平台排名榜  # 网络营销与推广小游戏  # 睢宁宠物行业营销推广招聘  # 传统物件网站建设方案  # 小龙seo  # QQ营销推广活动的活动内容  # 英文网站建设技术公司  # 余杭区网站建设方案  # 盐城网站推广公司有哪些  # 黄冈seo获客方案  # 您可以  # 适用于  # 就能  # word  # 序列化  # 是一个  # 就可以  # 如何将  # 连接数据库  # .net  # c#  # 配置文件  # ai  # 工具  # app  # json  # js 


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


相关推荐: 包子漫画官方网站在线链接-包子漫画在线阅读平台主页地址  css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  Python大型XML文件高效流式解析教程  Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践  cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法  Linux如何排查内存不足OOME问题_LinuxOOM分析教程  今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程  在命令行怎么运行html项目_命令行运行html项目方法【教程】  J*a实现学校排课程序_面向对象结构化项目示例  163邮箱官方主页登录 直达网易邮箱登录核心页面  向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程  押井守高度称赞《辐射4》:玩了八年都停不下来!  探索高级语言到C/C++的转译路径:以Go为例及内存管理策略  美团外卖商家服务中心入口 美团商家版官网入口  Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询  蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源  迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法  Android Studio计算器C键逻辑错误排查与修复:条件判断优化指南  Win11怎么查看电脑配置_Win11硬件配置检测工具使用  海量存储:机器视觉智能化的核心基石  使用 Pandas 高效处理 .dat 文件:字符清理与数据计算  Composer的 "conflict" 字段有什么用_如何声明不兼容的包以避免依赖冲突  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  谷歌学术网站直达地址 谷歌学术搜索网页版一键进入  绝地鸭卫平a核爆刀流玩法攻略  《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元  Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求  谷歌推RCS信息存档功能:公司可监控员工私密信息!  php源码怎么看淘宝客系统_看php源码淘宝客系统技巧  Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】  sublime怎么格式化代码_sublime代码美化与一键排版插件配置  windows10怎么关闭系统提示音_windows10彻底静音设置方法  PHP 枚举:根据字符串获取枚举案例的策略与实现  sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件  腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录  解决深度学习模型训练初期异常高损失与完美验证准确率问题  谷歌google账号注册详细步骤 谷歌账号注册官方教程  Log4j Console Appender性能瓶颈与高并发优化策略  提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案  极兔快递快件信息查询系统 极兔快递官网运单号追踪  高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法  CSS Grid如何控制元素对齐_align-items与justify-items组合使用  响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配  蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接  poki免费入口快捷访问 poki人气小游戏直接玩站点  c++如何使用TBB库进行任务并行_c++ Intel线程构建模块  Golang如何优化内存分配与垃圾回收_Golang内存管理与GC优化实践  漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址  抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明 

搜索