一、存储过程操作

1. 准备存储过程 newsreturnvalue(该存储过程计算2个参数的和并返回)

USE [ZPC.Contact]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

create proc [dbo].[newsreturnvalue]
( @param1 int,
@param2 int
) as begin
return @param1+@param2;
end

2. 调用方式:

private static void ExecuteWithParam()
{
using (IDbConnection conn = GetConnection())
{
DynamicParameters p = new DynamicParameters();
p.Add("@param1", );
p.Add("@param2",);
p.Add("@ReturnValue", null, DbType.Int32, ParameterDirection.ReturnValue); conn.Execute("newsreturnvalue", p, null, null, CommandType.StoredProcedure); int result= p.Get<int>("@ReturnValue"); Console.WriteLine(result);
}
}

二、QueryMultiple 批量查询介绍

private static void GetNewsAndCat()
{
using (IDbConnection conn = GetConnection())
{
string sql = @"
select * from news n inner join newscat nc on n.columncatid=nc.id where n.id=@id;
select * from newscat where id=@id
"; using (var mulsql = conn.QueryMultiple(sql, new { id = })) {
var news = mulsql.Read<News>().SingleOrDefault();
var newscat = mulsql.Read<NewsCat>().SingleOrDefault();
}
}
}

三、批量写入操作

 private static int InsertNewsBatch()
{
using(IDbConnection conn = GetConnection())
{
int result= conn.Execute("insert into NewsCat(Name,modifiedon,parentid) values(@name,@modifiedon,@parentid)", new []{
new {name="cat1",modifiedon=DateTime.Now, parentid= },
new {name="cat2",modifiedon=DateTime.Now, parentid= },
new {name="cat3",modifiedon=DateTime.Now, parentid= }
}, null, null, null); return result;
}
}

补充一下Dapper还支持List集合如:

private static void GetByIds()
{
IList<int> idslist = new List<int> {,,};
using (IDbConnection conn = GetConnection())
{
var list= conn.Query<NewsCat>("select * from Newscat where id in @ids", new { ids = idslist });
foreach(var item in list)
{
Console.WriteLine(item.Name);
}
}
}

Dapper存储过程以及多次查询和批量写入操作的更多相关文章

  1. Mvc+Dapper+存储过程分页10万条数据

    10万条数据采用存储过程分页实现(Mvc+Dapper+存储过程) 有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc ...

  2. StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改

    前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey&qu ...

  3. SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

    原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...

  4. mysql根据查询结果批量更新多条数据(插入或更新)

    mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对 ...

  5. Sql批量添加,批量查询,批量删除,批量修改。mybatis都有对应标签

    Sql批量添加,批量查询,批量删除,批量修改.mybatis都有对应标签

  6. C#利用SqlDataAdapte对DataTable进行批量数据操作

    C#利用SqlDataAdapte对DataTable进行批量数据操作,可以让我们大大简化操作数据的代码量,我们几乎不需要循环和不关心用户到底是新增还是修改,更不用编写新增和修改以及删除的SQL语句, ...

  7. MySQL 批量Dll操作(转)

    概述 本章节介绍使用游标来批量进行表操作,包括批量添加索引.批量添加字段等.如果对存储过程.变量定义.预处理还不是很熟悉先阅读我前面写过的关于这三个概念的文章,只有先了解了这三个概念才能更好的理解这篇 ...

  8. mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?

      本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...

  9. 使用C#对MongoDB中的数据进行查询,改动等操作

    首先,使用的是官方提供的C#訪问组件https://github.com/mongodb/mongo-csharp-driver 然后.编译后引用MongoDB.Bson.dll及MongoDB.Dr ...

随机推荐

  1. PHP实现多文件上传的一些简单方法

    下面我们就通过具体的代码示例,为大家介绍PHP实现多文件上传的一些简单方法. 第一种方法:利用单个文件上传方法 一段简单的form表单代码如下: <!DOCTYPE html> <h ...

  2. asp.net文件夹上传源码

    ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现. 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压. ASP.NE ...

  3. Our Journey of Dalian Ends && Our Journey of Xian Ends 最小费用最大流

    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛Our Journey of Dalian Ends 题意:要求先从大连到上海,再从上海打西安,中途会经过其他城市,每个城市只能去一次,出一次, ...

  4. TensorFlow(三):非线性回归

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # 非线性回归 # 使用numpy生成200个随机 ...

  5. NetworkX系列教程(5)-查看graph的信息

    小书匠Graph图论 有时候graph建好后,我们并不清除该graph内节点的,边的信息,这就需要调用函数去查看了. 目录: 6.查看Graph的信息 6.1查看graph内节点,边的 6.2查看gr ...

  6. 数据结构实验之图论二:图的深度遍历(SDUT 2107)(简单DFS)

    题解:图的深度遍历就是顺着一个最初的结点开始,把与它相邻的结点都找到,也就是一直往下搜索直到尽头,然后在顺次找其他的结点. #include <bits/stdc++.h> using n ...

  7. python 最小二乘 leastsq 函数实现 法线式 解决与x轴垂直问题

    当使用y=kx+b时,与x轴垂直的直线无法计算.因此使用法线式ysin(theta)+xcos(theta) = dist.貌似这么用有点复杂了,直接使用ax+by=1不知道能不能计算,未测试. # ...

  8. c 输出是自动显示输出类型

    显示0x i= print("%#x\n",i) 显示6位有效数字 i= print("l=%.6lf\n",i)

  9. Spring注解不生效

    如果在使用spring中,发现注解不生效,检查下如下配置是否配置. 1:一般情况下@Autowired默认是不生效的,配置之后,才会生效 <context:annotation-config / ...

  10. gitlab怎么用

    0101在个人资料里面去设置去找密钥.... 0102 点击生成密钥 0103 在文件夹的命令行输入 ssh-keygen -t rsa -C "your.email@example.com ...