古人学问无遗力,少壮工夫老始成。这篇文章主要讲述C# Dapper基本三层架构使用 (DAL)相关的知识,希望能为你提供帮助。
数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加、删除、修改、更新等基本操作
文章图片
【C# Dapper基本三层架构使用 (DAL)】首先需要在UI层App.Config配置文件中增加连接字符串,如下所示
< connectionStrings> < add name="con" connectionString="Data Source=127.0.0.1; Initial Catalog=Northwind; User ID=sa; Password=*******; Connect Timeout=30; Encrypt=False; TrustServerCertificate=False; ApplicationIntent=ReadWrite; MultiSubnetFailover=False"/> < /connectionStrings>
在DAL类库中添加Configuration引用,这样才能访问App.config配置
在DAL类库中添加RegionService.cs类
类库结构如下
文章图片
添加类库引用
文章图片
并在项目using中引用以下命名空间
using Dapper; using System.Configuration; using Northwind.Model; using System.Data; using System.Data.SqlClient;
在类中增加访问数据库字符串的静态变量,以供整个类中访问数据库
private static string connStr = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
根据RegionID查询数据库中的数据
public static Region GetById(int id) { using (IDbConnection conn = new SqlConnection(connStr)) { string sql = "SELECT r.RegionID, r.RegionDescription FROM Region AS r WHERE r.RegionID=@RegionID"; DynamicParameters parameters = new DynamicParameters(); parameters.Add("RegionID", id); IEnumerable< Region> region = conn.Query< Region> (sql, parameters); return region.FirstOrDefault(); } }
添加数据
public static bool Insert(Region region) { using (IDbConnection conn = new SqlConnection(connStr)) { string sql = @"INSERT INTO Region ( RegionID, RegionDescription ) VALUES ( @RegionID, @RegionDescription )"; DynamicParameters parameters = new DynamicParameters(); parameters.Add("RegionID", region.RegionID); parameters.Add("RegionDescription", region.RegionDescription); return conn.Execute(sql, parameters) > 0; } }
判断数据是否存在
public static bool IfExists(Region region) { using (IDbConnection conn = new SqlConnection(connStr)) { string sql = "SELECT r.RegionID, r.RegionDescription FROM Region AS r WHERE r.RegionID=@RegionID AND r.RegionDescription=RegionDescription"; DynamicParameters parameters = new DynamicParameters(); parameters.Add("RegionID", region.RegionID); parameters.Add("RegionDescription", region.RegionDescription); IEnumerable< Region> regions = conn.Query< Region> (sql, parameters); return regions.Count< Region> () > 0; } }
推荐阅读
- uni-app APP-PLUS 获取客户端信息 clientid 等
- appendChild is not a function
- Android config Android.mk parameter
- A Review on Generative Adversarial Networks: Algorithms, Theory, and Applications
- Android系统架构图
- QQ空间被举报怎样办?如何处理?
- 微信朋友圈如何发长视频?发长视频办法介绍_微信
- 微信里怎样找到抖音上很火的小黄鸭表情包?_微信
- 怎样运用微信查询话费呢?_微信