DapperHelper,SqlHelper
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
namespace OADemo.Tool
{
public class DapperHelper
{
/*
使用帮助,参数 param 是sql参数化设置,没有参数可以不写。
有1个参数@a param 写成 new {a = 值}
如多个参数@a @b new {a=值,b =值}
in类型的参数 id in (@x,@y,@z) 可改版成 id in @w 参数 new int[]{x,y,z }
*/
/// <summary>
/// 获取连接字符串
/// </summary>
/// <returns></returns>
public static DbConnection GetDbConnection()
{
return new SqlConnection(ConfigurationManager.ConnectionStrings["connStr"].ConnectionString);
}
/// <summary>
/// 查询操作
/// </summary>
/// <typeparam name="T">返回集合的类型</typeparam>
/// <param name="sql">sql语句</param>
/// <param name="param">参数化值</param>
/// <returns></returns>
public static IEnumerable<T> Query<T>(string sql, object param = null)
{
IEnumerable<T> _list = default(IEnumerable<T>);
if (!string.IsNullOrEmpty(sql))
{
using (DbConnection conn = GetDbConnection())
{
_list = conn.Query<T>(sql, param);
}
}
return _list;
}
/// <summary>
/// 和Query<T>的区别是 T之后返回能转换为T类型的集合,这里能返回所有。
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static IEnumerable<dynamic> Query(string sql, object param = null)
{
using (DbConnection conn = GetDbConnection())
{
return conn.Query(sql, param);
}
}
/// <summary>
/// 执行存储过程查询操作
/// </summary>
/// <typeparam name="T">返回集合的类型</typeparam>
/// <param name="storedName">存储过程</param>
/// <param name="param">参数化值</param>
/// <returns></returns>
public static IEnumerable<T> QueryStored<T>(string storedName, object param = null)
{
IEnumerable<T> _list = default(IEnumerable<T>);
if (!string.IsNullOrEmpty(storedName))
{
using (DbConnection conn = GetDbConnection())
{
_list = conn.Query<T>(storedName, commandType: CommandType.StoredProcedure);
}
}
return _list;
}
/// <summary>
/// 查询操作返回默认第一条数据(如返回null则创建默认类型)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static T FirstOrDefault<T>(string sql, object param = null)
{
var model = default(T);
if (!string.IsNullOrEmpty(sql))
{
using (DbConnection conn = GetDbConnection())
{
model = conn.Query<T>(sql, param).FirstOrDefault();
}
}
return model == null ? Activator.CreateInstance<T>() : model;
}
public static List<IEnumerable<dynamic>> QueryMultiple(string sql,int readTimes , object param = null)
{
List<IEnumerable<dynamic>> resutl = new List<IEnumerable<dynamic>>();
using (DbConnection conn = GetDbConnection())
{
using (var multi = conn.QueryMultiple(sql, param))
{
if (!multi.IsConsumed)
{
for (int i = 0; i < readTimes; i++)
{
resutl.Add( multi.Read());
}
}
}
}
return resutl;
}
/// <summary>
/// 非查询操作
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static int Excute(string sql, object param = null)
{
using (DbConnection conn = GetDbConnection())
{
return conn.Execute(sql, param);
}
}
/// <summary>
/// 返回首行首列
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql, object param = null)
{
using (DbConnection conn = GetDbConnection())
{
return conn.ExecuteScalar(sql, param);
}
}
}
}
-------------------------
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 OADemo.Tool
{
public class SqlHelper
{
static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
public SqlHelper()
{
}
public static int ExecuteNonquery(string cmdText, params SqlParameter[] ps)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand())
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(ps);
return cmd.ExecuteNonQuery();
}
}
}
public static object ExecuteScalar(string cmdText, params SqlParameter[] ps)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand())
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(ps);
return cmd.ExecuteScalar();
}
}
}
public static DataSet GetDsByAdapter(string cmdText, params SqlParameter[] ps)
{
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand())
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(ps);
using (SqlDataAdapter apt = new SqlDataAdapter(cmd))
{
apt.Fill(ds);
}
}
}
return ds;
}
public static SqlDataReader GetReader(string cmdText, params SqlParameter[] ps)
{
//using (SqlConnection conn = new SqlConnection(connStr))
//{
// using (SqlCommand cmd = new SqlCommand())
// { conn.Open();
// cmd.Connection = conn;
// cmd.CommandText = cmdText;
// cmd.Parameters.AddRange(ps);
// return cmd.ExecuteReader(CommandBehavior.CloseConnection);
// }
//}
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand();
conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; cmd.Parameters.AddRange(ps);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}
}
DapperHelper,SqlHelper的更多相关文章
- 不该活着的SqlHelper和DBHelper
前言: 还记得刚学ADO.NET的情景么? 还记得当年是怎么从ADO.NET被忽悠到用SqlHelper的么? 话说从入门到走上工作岗位那些年,我们就一直被纯纯地教导或引导,ADO.NET太原始,得封 ...
- SqlHelper中IN集合场景下的参数处理
我手头有个古老的项目,持久层用的是古老的ADO.net.前两天去昆明旅游,其中的一个景点是云南民族村,通过导游介绍知道了一个古老的民族——基诺族,“基”在这个族内代表舅舅,“基诺”意为“跟在舅舅后边” ...
- 支持多返回值存储过程的SqlHelper
public readonly string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionS ...
- 微软版的SqlHelper.cs类
一,微软SQLHelper.cs类 中文版: using System; using System.Data; using System.Xml; using System.Data.SqlClien ...
- 万能的SqlHelper,麻麻再也不用担心用什么数据库了
以前只用一种数据库,倒也无所谓,但是再数据库切换的时候,发现代码差不多呀. 最初,两种数据库,大不了写两个SqlHelper,但是多了也就发现代码重用率太低了吧. 因此,下面的SqlHelper诞生了 ...
- sqlHelper做增删改查,SQL注入处理,存储值,cookie,session
一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...
- sqlHelper做增删改查
1.把数据库里面的数据显示出来 sqlHelper怎么用:[网上可以下载,需要可以找楼主要] 1.拷贝到项目,修改它的命名空间等于当前项目名称 2.数据库的连接信息,用户名,密码,登录方式等 < ...
- SqlHelper类
using System; using System.Collections; using System.Collections.Generic; using System.Data; using S ...
- .net C# SqlHelper for Oracle
适用于Oracle的sqlhelper 需要使用ODP.Net,引用Oracle.DataAccess.dll 推荐安装ODAC 代码如下: using System; using System.Co ...
随机推荐
- 【JS学习笔记】提取行间事件
行间提取事件第一种方法: function 名字() { ... } oBtn.onclick=名字: 第二种方法: oBtn.onclick=function () { ... } 其实在JS当中, ...
- C#开发学习——存储过程
举个例子: 带输入参数的存储过程计算班级中英语和数学不及格的人数 if(exists(select * from sys.objects where name='usp_GetFailCou ...
- Testlink1.9.14介绍及使用
Testlink简介 今天在为部门培训testlink的使用,顺便把相关片段记录下来. TestLink是一款开源的测试管理工具,主要用于进行测试过程的管理,通过使用TestLink提供的功能,可以 ...
- template template parameter
#include <iostream> using namespace std; template<typename T> class A { }; template<t ...
- Float 的那些事
css float 定义元素浮动到左侧或者右侧.其出现的本意是让文字环绕图片而已. left.right.inherit(从父级元素获取float值).none 一.浮动的性质 1. 包裹性 disp ...
- SQL性能优化注意事项
1.选用适合的Oracle优化器 Oracle的优化器共有3种: a.RULE(基于规则) b.COST(基于成本) c.CHOOSE(选择性) 设置缺省的优化器,可以通过对init.ora文件中OP ...
- 明天opp¥this xuexi 资料在高中一班
明天opp¥this xuexi 资料在高中一班
- keychain的使用
通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码.证书等等,就需要使用更为安全的keychain了.keychain里保存的信息不会因App被删除而丢失,在用 ...
- 安卓---android:versionCode和android:versionName 用途
主要用于升级和自我识别,转自:http://blog.csdn.net/wh_19910525/article/details/8660416 Android的版本可以在androidmainfest ...
- qsort()函数(C)
qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序.排序之后的结果仍然放在原数组中.使用qsort函数必须自己写一个比较函数. 函数原 ...