c# .first( dictionary_C#:快速编写参数化SQL查询

本文将介绍在 C# 6+ 支持下,使用 SQL 进行“参数化查询”的简化访问原理。

完整实现访问 GitHub

SQLib:快速编写参数化SQL查询​github.com
a5bcb66159e6bd0c2c19b936aaab0ca4.png

发布版本通过 NuGet 安装使用:

SQLib:快速编写参数化SQL查询​www.nuget.org

通常,在编写基于 SQL 访问数据库的应用程序设计时,需要使用这些对象:

  • DbConnection:创建数据库连接;
  • DbCommand:创建对数据源执行的 SQL 语句或存储过程;
  • DbParameter:(可选)创建用于 DbCommand 的参数;
  • DbDataReader:(可选)从数据源读取数据。

访问数据库的一般过程:

  1. 创建 DbConnection,打开数据库连接;
  2. 创建 DbCommand,编写 SQL 语句并执行;
  3. 如果 SQL 语句包括传入值部分,应该配合使用 DbParameter 创建参数化查询;
  4. 如果需要读取数据,则通过 DbDataReader 进行读取;
  5. 关闭数据库连接。

这个过程如果使用 Sqlite,大约会是这个样子:

  • 从表 Regions 中获取指定 RegionId RegionDescription
static 

由于使用的是数据库提供程序的基础类型,为了执行这样简单的查询,耗费了不少心思。

其实,对于这个查询,关注点只有以下几个部分:

  1. 构建 SQL 语句;
  2. 确认 SQL 语句的参数部分;
  3. 获取查询结果。

C# 6+ 的语言基础上,部分内容是可以智能构建的:

  1. 使用 using 管理连接创建和释放;
  2. 使用 FormattableString(字符串插值)自动构建 SQL 语句参数化;
  3. 使用 Dictionary 更方便地接受查询结果。

管理连接创建和释放

使用 using 语法来管理连接创建和释放:对象创建时建立连接,对象销毁时关闭连接:

using 

自动构建 SQL 语句参数化

通过解析字符串内插来获取需要参数化的部分,例如:

int 
  • regionId 就是“参数化变量”;
  • regionId int 类型,对应 DbType.Int32
  • regionId 值为 1

使用更方便地数据结构来接受查询结果

使用 Dictionary 作为查询结果接收器,是为了使用 [ ] 操作符来简化字段访问:

var 

回到上面的例子,使用新的方法来获取数据:

1、创建 Scope

public 

2、从表 Regions 中获取指定 RegionId RegionDescription

static 

如有建议,欢迎来信!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值