ADO工具类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Dev.DbTools
{
public class ADOTools
{
//操作数据库的API
//public static readonly string CONNECTION_STR = ConfigurationManager.ConnectionStrings["TestStr"].ToString();
public static string CONNECTION_STR = null;
public static bool SetConnection(string strconn)
{
try
{
SqlConnection conn = new SqlConnection(strconn);
conn.Open();
if (conn.State == ConnectionState.Open)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
return false;
throw ex;
}
}
/// <summary>
/// 执行SQL操作,ExcuteNoQuery
/// </summary>
/// <param name="connectionStr">数据库链接字符串</param>
/// <param name="strSql">执行的SQL语句</param>
/// <returns>影响行数</returns>
public static int ExcuteNoQuery(string connectionStr, string strSql)
{
int flag = 0;
SqlConnection conn = null;
SqlCommand cmd = null;
try
{
conn = new SqlConnection(connectionStr);
conn.Open();
cmd = new SqlCommand(strSql, conn);
flag = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
conn.Dispose();
}
return flag;
}
/// <summary>
/// 执行SQL操作,ExecuteScalar
/// </summary>
/// <param name="connectionStr">数据库链接字符串</param>
/// <param name="strSql">执行的SQL语句</param>
/// <returns>返回唯一值</returns>
public static object ExecuteScalar(string connectionStr, string strSql)
{
object flag = 0;
SqlConnection conn = null;
SqlCommand cmd = null;
try
{
conn = new SqlConnection(connectionStr);
conn.Open();
cmd = new SqlCommand(strSql, conn);
flag = cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
conn.Dispose();
}
return flag;
}
/// <summary>
/// Reader查询
/// </summary>
/// <param name="connectionStr">数据库链接字符串</param>
/// <param name="strSql">执行的SQL语句</param>
/// <returns>影响行数</returns>
public static SqlDataReader ExcuteReader(string connectionStr, string strSql)
{
SqlConnection conn = new SqlConnection(connectionStr);
conn.Open();
SqlCommand cmd = new SqlCommand(strSql, conn);
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
/// <summary>
/// DataTable查询
/// </summary>
/// <param name="connectionStr">数据库链接字符串</param>
/// <param name="strSql">执行的SQL语句</param>
/// <returns>返回DataTable数据源</returns>
public static DataTable ExcuteDataTable(string connectionStr, string strSql)
{
DataTable dt = null;
SqlConnection conn = null;
SqlCommand cmd = null;
SqlDataAdapter adapter = null;
try
{
conn = new SqlConnection(connectionStr);
cmd = new SqlCommand(strSql, conn);
adapter = new SqlDataAdapter(cmd);
dt = new DataTable();
adapter.Fill(dt);
}
catch (Exception ex)
{
dt = null;
throw ex;
}
finally
{
adapter.Dispose();
cmd.Dispose();
conn.Dispose();
}
return dt;
}
/// <summary>
/// DataTable参数化查询
/// </summary>
/// <param name="connectionStr">数据库链接字符串</param>
/// <param name="strSql">执行的SQL语句</param>
/// <param name="CommandType">存储过程或者SQL</param>
/// <returns>返回DataTable数据源</returns>
public static DataTable ExcuteDataTable(string connectionStr, string strSql, CommandType cd, SqlParameter[] sp)
{
DataTable dt = null;
SqlConnection conn = null;
SqlCommand cmd = null;
SqlDataAdapter adapter = null;
try
{
conn = new SqlConnection(connectionStr);
cmd = new SqlCommand(strSql, conn);
cmd.CommandType = cd;
cmd.Parameters.AddRange(sp);
adapter = new SqlDataAdapter(cmd);
dt = new DataTable();
adapter.Fill(dt);
}
catch (Exception ex)
{
dt = null;
throw ex;
}
finally
{
adapter.Dispose();
cmd.Dispose();
conn.Dispose();
}
return dt;
}
/// <summary>
/// 参数化执行SQL
/// </summary>
/// <param name="connectionStr">连接字符串</param>
/// <param name="strSql">执行的SQL语句</param>
/// <param name="cd">存储过程或者SQL</param>
/// <param name="sp">参数数组</param>
/// <returns>影响的行数</returns>
public static int ExcuteNoQuery(string connectionStr, string strSql, CommandType cd, SqlParameter[] sp)
{
int flag = 0;
SqlConnection conn = null;
SqlCommand cmd = null;
try
{
conn = new SqlConnection(connectionStr);
conn.Open();
cmd = new SqlCommand(strSql, conn);
cmd.CommandType = cd;
cmd.Parameters.AddRange(sp);
flag = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
conn.Dispose();
}
return flag;
}
/// <summary>
/// 参数化执行SQL,返回插入后自增ID
/// </summary>
/// <param name="connectionStr">连接字符串</param>
/// <param name="strSql">执行的SQL语句</param>
/// <param name="cd">存储过程或者SQL</param>
/// <param name="sp">参数数组</param>
/// <returns>影响的行数</returns>
public static int ExcuteNoQueryByReturnID(string connectionStr, string strSql, CommandType cd, SqlParameter[] sp)
{
int flag = 0;
SqlConnection conn = null;
SqlCommand cmd = null;
try
{
conn = new SqlConnection(connectionStr);
conn.Open();
cmd = new SqlCommand(strSql, conn);
cmd.CommandType = cd;
cmd.Parameters.AddRange(sp);
cmd.ExecuteNonQuery();
flag = Convert.ToInt32(sp[1].Value);
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
conn.Dispose();
}
return flag;
}
/// <summary>
/// 执行SQL事务,ExcuteNoQuery
/// </summary>
/// <param name="transaction">事务对象</param>
/// <param name="strSql">执行脚本</param>
/// <returns></returns>
public static int ExcuteNoQuery(SqlTransaction transaction,string strSql)
{
int flag = 0;
SqlCommand cmd = null;
try
{
cmd = new SqlCommand(strSql, transaction.Connection, transaction);
flag = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
}
return flag;
}
/// <summary>
/// 执行SQL事务,ExecuteScalar
/// </summary>
/// <param name="transaction">事务对象</param>
/// <param name="strSql">执行脚本</param>
/// <returns></returns>
public static object ExecuteScalar(SqlTransaction transaction, string strSql)
{
object flag = 0;
SqlCommand cmd = null;
try
{
cmd = new SqlCommand(strSql, transaction.Connection, transaction);
flag = cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cmd.Dispose();
}
return flag;
}
public static void BulkInsert(DataTable dt, string tableName)
{
SqlConnection conn = new SqlConnection(CONNECTION_STR);
conn.Open();
using (SqlBulkCopy bulk = new SqlBulkCopy(conn))
{
bulk.BatchSize = 2000000;
bulk.BulkCopyTimeout = 500000000;
bulk.DestinationTableName = tableName;
foreach (DataColumn dc in dt.Columns)
{
bulk.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
}
bulk.WriteToServer(dt);
}
}
public static DataSet ExcuteDataSet(string connectionStr, string strSql, CommandType cd, SqlParameter[] sp)
{
DataSet ds = null;
SqlConnection conn = null;
SqlCommand cmd = null;
SqlDataAdapter adapter = null;
try
{
conn = new SqlConnection(connectionStr);
cmd = new SqlCommand(strSql, conn);
cmd.CommandType = cd;
cmd.Parameters.AddRange(sp);
adapter = new SqlDataAdapter(cmd);
ds = new DataSet();
adapter.Fill(ds);
}
catch (Exception ex)
{
ds = null;
throw ex;
}
finally
{
adapter.Dispose();
cmd.Dispose();
conn.Dispose();
}
return ds;
}
}
}
ADO工具类的更多相关文章
- 另一个ado工具类
using System;using System.Collections.Generic;using System.Text;using System.Data.SqlClient;using Sy ...
- ADO.NET复习总结(5)--工具类SqlHelper 实现登录
工具类SqlHelper 即:完成常用数据库操作的代码封装 一.基础知识1.每次进行操作时,不变的代码: (1)连接字符串:(2)往集合存值:(3)创建连接对象.命令对象:(4)打开连接:(5)执行命 ...
- 基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil
基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,把日常能用到的各种CRUD都进行了简化封装,让普通程序员只需关注业务即可,因为非常简单,故直接贴源代码,大家若需使用可以直 ...
- C#工具类:使用SharpZipLib进行压缩、解压文件
SharpZipLib是一个开源的C#压缩解压库,应用非常广泛.就像用ADO.NET操作数据库要打开连接.执行命令.关闭连接等多个步骤一样,用SharpZipLib进行压缩和解压也需要多个步骤.Sha ...
- 【Unity】工具类系列教程—— 代码自动化生成!
转载自:https://zhuanlan.zhihu.com/p/30716595?utm_medium=social&utm_source=qq [为什么要做自动化工具] 工具类的创建是为了 ...
- 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式
适用于app.config与web.config的ConfigUtil读写工具类 之前文章:<两种读写配置文件的方案(app.config与web.config通用)>,现在重新整理一 ...
- Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
Go/Python/Erlang编程语言对比分析及示例 本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...
- C#中SQLite的使用及工具类
目录 SQLite简介 存储类 亲和类型 引用System.Data.SQLite.dll 软件包分类 使用本机库预加载 常用部署包 工具类 参考资料 SQLite简介 SQLite是一款轻型的数据库 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
随机推荐
- fuser - 查看文件/网络端口等被什么进程占用
前提 linux环境下,当使用umount命令卸载挂载点时,会遇到“device is busy”提示,这时fuser就能查出谁在使用这个资源;当然umount –lf [挂载点] 也可以强制卸载 ...
- 剑指offer——矩形覆盖
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析:斐波那契数列的变形 n=0,返回0 n=1,返回1 n=2,返回 ...
- Generative Adversarial Nets[iGAN]
本文来自<Generative Visual Manipulation on the Natural Image Manifold>,是大神Jun-Yan Zhu在2016年9月的作品. ...
- day95
Linux基本部署配置及常见扩展应用 Linux软件包安装方法 1. 安装: 整个安装过程可以分为以下几步: 1) 取得应用软件:通过下载.购买光盘的方法获得: 2)解压缩文件:一般tar包,都会再做 ...
- 基于Metronic的Bootstrap开发框架经验总结(16)-- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...
- iOS开发造轮子 | 通用占位图
https://www.jianshu.com/p/beca3ac24031 实际运用场景: 没网时的提示view,tableView或collectionView没内容时的展示view,以及其它特殊 ...
- python 中的super()继承,搜索广度为先
一.python中类的继承 1.1 单继承 在python 中我们可以这样来定义一个类:及继承它的子类 class Father: def __init__(self, mes): #1 父类的ini ...
- Redis客户端断开重连功能要点
Redis客户端: Java基于Jedis开发 C#基于StackExchange开发 C++基于acl开发 首先确保在主从模式下,客户端能分辨主从节点,自动连接正确的客户端,这样只要有一个节点可用, ...
- Django之事务
Django之事务 事务就是将一组操作捆绑在一起,只有当这一组操作全部都成功以后这个事务才算成功;当这组操作中有任何一个没有操作成功,则这个操作就会回滚,回到操作之前的状态. 其中牵扯到向数据库中写数 ...
- stark组件的增删改(新)
1.效果图 2.详细步骤解析 3.总结.代码 1.效果图 增 删除 改 2.详细步骤解析 1.构造增删改查url,反向解析 2.ModelForm定制add.edit页面 3.starak中的 ...