C# Dapper基本三層架構使用 (三、DAL)


數據訪問層(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;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM