輕量級(jí)ORM框架Dapper應(yīng)用支持操作函數(shù)和事物
dapper除了支持基礎(chǔ)的CURD、存儲(chǔ)過程以外,還支持操作函數(shù)和事物。
dapper操作函數(shù)的代碼如下:
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滴調(diào)用函數(shù)
/// </summary>
public static void ExecuteFunction()
{
// 連接字符串
string strCon = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString;
// connection對(duì)象
IDbConnection dbConnection = new SqlConnection(strCon);
// 定義參數(shù)
DynamicParameters paras = new DynamicParameters();
paras.Add("@num1", 34);
paras.Add("@num2", 456);
// 返回值
paras.Add("@sum", 0, DbType.Int32, ParameterDirection.ReturnValue);
string functionName = "fun_test";
// 執(zhí)行
int count = dbConnection.Execute(functionName, paras, null, null, CommandType.StoredProcedure);
// 獲取輸出參數(shù)的值
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對(duì)象
IDbConnection dbConnection = new SqlConnection(strCon);
string strSQL = "DELETE FROM Student WHERE StudentID=@StudentID";
DynamicParameters paras = new DynamicParameters();
paras.Add("@StudentID", 3);
// 在BeginTransaction之前要打開連接,否則報(bào)錯(cuò):無效操作,連接已關(guān)閉
dbConnection.Open();
// 開啟事物
IDbTransaction transaction = dbConnection.BeginTransaction();
try
{
dbConnection.Execute(strSQL, paras, transaction: transaction);
// 提交事務(wù)
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對(duì)象
IDbConnection dbConnection = new SqlConnection(strCon);
string strSQL = "DELETE FROM Student WHERE StudentID=@StudentID";
DynamicParameters paras = new DynamicParameters();
paras.Add("@StudentID", 6);
dbConnection.Open();
try
{
dbConnection.Execute(strSQL, paras);
transactionscope.Complete();
}
catch (Exception ex)
{
// 不提交事務(wù)默認(rèn)自動(dòng)回滾
Console.WriteLine(ex.Message);
}
}
}到此這篇關(guān)于Dapper支持操作函數(shù)和事物的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 輕量級(jí)ORM框架Dapper應(yīng)用之Dapper支持存儲(chǔ)過程
- 輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)Join操作
- 輕量級(jí)ORM框架Dapper應(yīng)用之返回多個(gè)結(jié)果集
- 輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)In操作
- 輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)CURD操作
- 輕量級(jí)ORM框架Dapper應(yīng)用之安裝Dapper
- ORM框架之Dapper簡(jiǎn)介和性能測(cè)試
- 輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)DTO
相關(guān)文章
.NET?Core配置連接字符串和獲取數(shù)據(jù)庫上下文實(shí)例
這篇文章介紹了.NET?Core配置連接字符串和獲取數(shù)據(jù)庫上下文實(shí)例的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
MAUI項(xiàng)目中使用SnackBar與Toast通知功能
這篇文章介紹了MAUI項(xiàng)目中使用SnackBar與Toast通知功能的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
datagrid和repeader控件中替換標(biāo)識(shí)值的方法
本節(jié)主要介紹了datagrid和repeader控件中替換標(biāo)識(shí)值的方法,需要的朋友可以參考下2014-08-08
ASP.NET中Webservice安全 實(shí)現(xiàn)訪問權(quán)限控制
本文主要講解ASP.NET中的Webservice的安全設(shè)置兩種方法,一種基于soapheader,一種基于SoapExtensionAttribute,需要的朋友可以參考下。2016-05-05
ajaxToolkit:TextBoxWatermarkExtender演示與實(shí)現(xiàn)代碼
該控件的效果就是在TextBox控件上添加“水印”效果,也就是當(dāng)TextBox為空時(shí),顯示提示消息,一旦TextBox聚焦,樣式就消失,看起來還挺不錯(cuò)的嗎,感興趣的你可以了解下哦,希望本文對(duì)你有所幫助2013-01-01
asp.net生成高質(zhì)量縮略圖通用函數(shù)(c#代碼),支持多種生成方式
這兩天正在研究報(bào)表中餅圖的繪圖方法,文章中的某些做法值得參考.2008-08-08
asp.net 使用ObjectDataSource控件在ASP.NET中實(shí)現(xiàn)Ajax真分頁
ASP.NET 3.5中新增加的ListView控件是一個(gè)用于頁面數(shù)據(jù)綁定和界面布局的非常棒的控件,它在ASP.NET 2.0 GridView的基礎(chǔ)上做了很多改進(jìn),用戶在使用時(shí)可以控制的元素更多,開發(fā)時(shí)的靈活性更大了,個(gè)人覺得ListView在使用時(shí)比DataGrid和GirdView更加順手。2009-11-11
.net core日志系統(tǒng)相關(guān)總結(jié)
多年的經(jīng)驗(yàn),日志記錄是軟件開發(fā)的重要組成部分。沒有日志記錄機(jī)制的系統(tǒng)不是完善的系統(tǒng)。在開發(fā)階段可以通過debug附件進(jìn)程進(jìn)行交互調(diào)試,可以檢測(cè)到一些問題,但是在上線之后,日志的記錄起到至關(guān)重要的作用。本文講解下日志系統(tǒng)的相關(guān)使用2021-06-06
Win7安裝Visual Studio 2015失敗的解決方法
這篇文章主要為大家詳細(xì)介紹了Win7安裝Visual Studio 2015失敗的解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03

