博客
关于我
.ner core API +dapper +sql
阅读量:251 次
发布时间:2019-02-28

本文共 3416 字,大约阅读时间需要 11 分钟。

使用Dapper框架进行SQL操作的C#示例

一、查询操作

在这个示例中,我们将使用Dapper框架来执行数据库查询操作。以下是查询操作的实现步骤:

1. 准备所需的命名空间

确保在代码文件中包含以下命名空间引用:

  • using Dapper;
  • using Microsoft.AspNetCore.Mvc;
  • using Newtonsoft.Json;
  • using System;
  • using System.Collections.Generic;
  • using System.Data;
  • using System.Data.SqlClient;
  • using System.Linq;
  • using System.Security.Cryptography;
  • using System.Text.Json;
  • using System.Threading.Tasks;
  • using TP.Domain;
  • using TP.Infrastructure;
  • using TPAPI.ModelsVue;

2. 创建SQL控制器

创建一个新的控制器类,继承自Controller类,并添加以下特性:

[Route("api/[controller]")][ApiController][ApiExplorerSettings(GroupName = "yw")]public class SqlController : Controller{    // 其他方法...}

3. 实现查询方法

以下是查询操作的实现代码:

[HttpPost("/[controller]/testSelselect")]public string testSelselect(string person){    try    {        using (SqlConnection connection = new SqlConnection(TPConfig.conn_Main))        {            connection.Open();            string sql = "SELECT * FROM testTable where person=@person";            var resClassSet = connection.Query(sql, new { person = person }).ToList();            return JsonConvert.SerializeObject(resClassSet);        }    }    catch (Exception)    {        throw;    }}

4. 使用Dapper执行查询

在代码中,connection.Query方法用于执行SQL查询,@person参数将传递到数据库中。返回结果通过JsonConvert.SerializeObject转换为JSON格式。

二、CRUD操作

接下来,我们将实现CRUD(创建、读取、更新、删除)操作,分别对应于testInserttestDeletetestUpdate方法。

1. 插入操作

以下是插入操作的实现代码:

[HttpPost("/[controller]/testInsert")]public string testInsert([FromBody] object data){    try    {        using (SqlConnection connection = new SqlConnection(TPConfig.conn_Main))        {            connection.Open();            var result = (JObject)JsonConvert.DeserializeObject(data.ToString());            string sql = "insert into testTable (code,name,person) values (@code,@name,@person)";            connection.Execute(sql, new {                 code = result["code"].ToString(),                 name = result["name"].ToString(),                 person = result["person"].ToString()             });            return "OK!";        }    }    catch (Exception)    {        throw;    }}

2. 删除操作

以下是删除操作的实现代码:

[HttpPost("/[controller]/testDelete")]public string testDelete([FromBody] object data){    try    {        using (SqlConnection connection = new SqlConnection(TPConfig.conn_Main))        {            connection.Open();            var result = (JObject)JsonConvert.DeserializeObject(data.ToString());            string sql = "delete from testTable where Id=@id";            connection.Execute(sql, new { id = result["id"].ToString() });            return "OK!";        }    }    catch (Exception)    {        throw;    }}

3. 更新操作

以下是更新操作的实现代码:

[HttpPost("/[controller]/testUpdate")]public string testUpdate([FromBody] object data){    try    {        using (SqlConnection connection = new SqlConnection(TPConfig.conn_Main))        {            connection.Open();            var result = (JObject)JsonConvert.DeserializeObject(data.ToString());            string sql = "update testTable set name=@name where ID=@Id";            connection.Execute(sql, new {                 name = result["name"].ToString(),                 Id = result["Id"].ToString()             });            return "OK!";        }    }    catch (Exception)    {        throw;    }}

4. 参数处理

在以上方法中,我们使用了[FromBody] object data来接收来自客户端的数据。为了确保数据的安全性和完整性,可以在处理数据之前进行参数验证和过滤。

5. 错误处理

每个方法都包含了try-catch块,以确保在发生异常时能够及时捕获并抛出错误信息。

通过以上实现,可以轻松地使用Dapper框架对SQL数据库进行CRUD操作,并将结果返回给客户端。

转载地址:http://pkvp.baihongyu.com/

你可能感兴趣的文章
pipeline配置与管理Job企业级实战
查看>>
pipeline项目配置实战
查看>>
Pipenv 与 Conda?
查看>>
QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小//Android虚拟机分辨率
查看>>
pipreqs : 无法将“pipreqs”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径 正确,然后再试一次。
查看>>
pipy国内镜像的网址
查看>>
quiver绘制python语言
查看>>
pip下载缓慢
查看>>
PIP使用SSH从BitBucket安装自定义软件包,无需输入SSH密码
查看>>
pip命令提示unknow or unsupported command install解决方法
查看>>
pip在安装模块时提示Read timed out
查看>>
pip更换源
查看>>
SpringBoot之Banner源码深度分解
查看>>
Pix2Pix如何工作?
查看>>
QuickBI助你成为分析师——搞定数据源
查看>>
pkl来存储python字典
查看>>
quick sort | 快速排序 C++ 实现
查看>>
pkpmbs 建设工程质量监督系统 Ajax_operaFile.aspx 文件读取漏洞复现
查看>>
pkpmbs 建设工程质量监督系统 文件上传漏洞复现
查看>>
pku 2400 Supervisor, Supervisee KM求最小权匹配+DFS回溯解集
查看>>