dapper支持操作函数和事物
dapper除了支持基础的CURD、存储过程以外,还支持操作函数和事物。
dapper操作函数的代码如下:
using Dapper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DapperDemo
{
public static class OperFunction
{
/// <summary>
/// Dapper滴调用函数
/// </summary>
public static void ExecuteFunction()
{
// 连接字符串
string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
// connection对象
IDbConnection dbConnection = new SqlConnection(strCon);
// 定义参数
DynamicParameters paras = new DynamicParameters();
paras.Add("@num1", );
paras.Add("@num2", );
// 返回值
paras.Add("@sum", , DbType.Int32, ParameterDirection.ReturnValue);
string functionName = "fun_test";
// 执行
int count = dbConnection.Execute(functionName, paras, null, null, CommandType.StoredProcedure);
// 获取输出参数的值
int sum = paras.Get<int>("@sum");
Console.WriteLine("sum:" + sum);//输出390
}
}
}
dapper支持事物的代码如下:
using Dapper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DapperDemo
{
public static class OperTransaction
{
/// <summary>
/// Dapper支持事物
/// </summary>
public static void ExecuteTransaction()
{
// 连接字符串
string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
// connection对象
IDbConnection dbConnection = new SqlConnection(strCon);
string strSQL = "DELETE FROM Student WHERE StudentID=@StudentID";
DynamicParameters paras = new DynamicParameters();
paras.Add("@StudentID", );
// 在BeginTransaction之前要打开连接,否则报错:无效操作,连接已关闭
dbConnection.Open();
// 开启事物
IDbTransaction transaction = dbConnection.BeginTransaction();
try
{
dbConnection.Execute(strSQL, paras, transaction: transaction);
// 提交事务
transaction.Commit();
}
catch (Exception ex)
{
// 回滚事物
transaction.Rollback();
}
}
}
}
Dapper除了支持Transaction以外,还支持Transactionscope:
public static void ExecuteTransactionScope()
{
using (var transactionscope = new TransactionScope(TransactionScopeOption.Required))
{
// 连接字符串
string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
// connection对象
IDbConnection dbConnection = new SqlConnection(strCon);
string strSQL = "DELETE FROM Student WHERE StudentID=@StudentID";
DynamicParameters paras = new DynamicParameters();
paras.Add("@StudentID", );
dbConnection.Open();
try
{
dbConnection.Execute(strSQL, paras);
transactionscope.Complete();
}
catch (Exception ex)
{
// 不提交事务默认自动回滚
Console.WriteLine(ex.Message);
}
}
}
dapper支持操作函数和事物的更多相关文章
- MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
浏览目录: 1.视图 2.触发器 3.存储过程 4.函数 5.事物 6.数据库锁 7.数据库备份 1.视图 视图:是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据 视 ...
- mysql第五篇 : MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
第五篇 : MySQL 之 视图.触发器.存储过程.函数.事物与数据库锁 一.视图 视图是一个虚拟表(非真实存在的),其本质是‘根据SQL语句获取动态的数据集,并为其命名‘ ,用户使用时只需使用“名称 ...
- dedecms功能性函数封装(XSS过滤、编码、浏览器XSS hack、字符操作函数)
dedecms虽然有诸多漏洞,但不可否认确实是一个很不错的内容管理系统(cms),其他也不乏很多功能实用性的函数,以下就部分列举,持续更新,不作过多说明.使用时需部分修改,你懂的 1.XSS过滤. f ...
- Python--set常用操作函数
python提供了常用的数据结构,其中之一就是set,python中的set是不支持索引的.值不能重复.无需插入的容器. 简单记录下set常用的操作函数: 1.新建一个set: set("H ...
- signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数
信号是与一定的进程相联系的.也就是说,一个进程可以决定在进程中对哪些信号进行什 么样的处理.例如,一个进程可以忽略某些信号而只处理其他一些信号:另外,一个进程还可以选择如何处理信号.总之,这些总与特定 ...
- dapper支持oracle游标
dapper支持oracle游标 Dapper是一个轻型的ORM类.它有啥优点.缺点相信很多朋友都知道了,园里也有很多朋友都有相关介绍,这里就不多废话. 如果玩过Oracle都知道,存储过程基本都是通 ...
- linux makefile字符串操作函数 替换subst、模式替换patsubst、去首尾空格strip、查找字符串findstring、过滤filter、反过滤filter-out、排序函数sort、取单词word、取单词串wordlist、个数统计words
1.1 字符操作函数使用 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函 ...
- linux系统编程之信号(五):信号集操作函数,信号阻塞与未决
一,信号集及相关操作函数 信号集被定义为一种数据类型: typedef struct { unsigned long sig[_NSIG_WORDS]: } sigset_t 信号集用来描述信号的集合 ...
- mysql时间操作函数和存储过程
因为业务须要统计一批数据.用到关于mysql的时间操作函数和存储过程,问题已经基本解决.把过程记录下: 1. mysql的语句中不支持直接用循环.循环仅仅能在存储过程中使用. 2. 写为文件时,注意一 ...
随机推荐
- Elasticsearch的基友Logstash(转)
Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理. 一.原理 Input可以从文件中.存储中.数据库中抽取数据,Input有两种 ...
- Mac idea 执行testng用例,提示%MODULE_WORKING_DIR%目录不存在解决办法
idea 下载git代码 执行testng用例,报错: 下午4:47 Error running 'Test.apkStart': Cannot start process, the working ...
- 修改eclipse.ini文件指定jdk
在eclipse.ini文件顶部插入 -vmE:/kfgj/Java/jdk1.7.0_21/bin/javaw.exe
- flowable学习笔记-简单流程概念介绍
1 Flowable process engine允许我们创建ProcessEngine 对象和使用 Flowable 的API ProcessEngine是线程安全的,他是通过 ProcessEng ...
- unity, ugui toggle, dynamic bool
假设Canvas_debugControl.cs有一个函数 public void showNextSceneButton(bool value){ ... } 欲将其添加到一个ugui toggle ...
- django 学习之model操作(想细化)
一.Field选项 null=True 数据库为空 blank=True admin相关为空 choices:choices意味着静态数据的变化不会太大. db_column: 用于此字段的数据库的列 ...
- kafka 配置文件注释
文章转载自:http://liyonghui160com.iteye.com/blog/2163899 server.properties配置: server.properties中所有配置参数说明( ...
- php分享二十六:读写日志
一:读写日志注意事项: 1:fgets取出日志行后,注意用trim过滤下 2:explode(“\t", $line) 拆分后,注意判断下个数是否正确,如果不正确,怎么处理? 如果某一列 ...
- Atitit 图像处理类库 halcon11 安装与环境搭建attilax总结
Atitit 图像处理类库 halcon11 安装与环境搭建attilax总结 正常安装软件,安装前请先退出其它一切正在运行的程序. 先安装halcon-10.0-windows.exe.安装完成后 ...
- sql中计算某天是全年的第几周及取得某天的所在周的周一的日期的函数
--取得某天的所在周的周一的函数 CREATE FUNCTION getMondayBtDate(@date datetime) RETURNS date AS begin DECLARE @week ...