ADO.NET工具类(二)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration; namespace AjaxFinder
{
public class SQLHelper
{ //public static string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
public static string connectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
public SQLHelper()
{ } #region 执行带参数的SQL语句 #region ExecuteNonQuery
/// <summary>
/// 在指定的连接上用指定的参数执行SQL命令(不返回任何行)
/// 一般用语执行执行 UPDATE、INSERT 或 DELETE 语句。
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="commandType">命令类型(存储过程、文本等等)</param>
/// <param name="commandText">存储过程名或T-SQL语句</param>
/// <returns>该命令影响的行数</returns>
public static int ExecuteNonQuery(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
if (connectionString == null || connectionString.Length == )
throw new ArgumentNullException("connectionString");
if (commandText == null || commandText.Length == )
throw new ArgumentNullException("commandText"); using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open(); SqlCommand command = new SqlCommand();
PrepareCommand(command, connection, commandType, commandText, commandParameters);
int retval = command.ExecuteNonQuery(); connection.Close();
//connection.Dispose();
return retval; }
}
#endregion #region ExecuteReader
/// <summary>
/// 在指定的连接上用指定的参数执行SQL命令
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="commandType">命令类型(存储过程、文本等等)</param>
/// <param name="commandText">存储过程名或T-SQL语句</param>
/// <param name="commandParameters">命令的参数</param>
/// <returns>返回一个SqlDataReader对象</returns>
public static SqlDataReader ExecuteReader(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
if (connectionString == null || connectionString.Length == )
throw new ArgumentNullException("connectionString");
if (commandText == null || commandText.Length == )
throw new ArgumentNullException("commandText"); SqlConnection connection = null;
try
{
connection = new SqlConnection(connectionString);
connection.Open(); SqlCommand command = new SqlCommand();
PrepareCommand(command, connection, commandType, commandText, commandParameters);
SqlDataReader dataReader = command.ExecuteReader(CommandBehavior.CloseConnection);
return dataReader;
}
catch
{
if (connection != null)
connection.Close();
//connection.Dispose();
return null;
}
} #endregion #region 执行查询语句,返回DataSet
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString, params SqlParameter[] cmdParms)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
//在此处编写执行Sql语句的返回DataSet的通用代码
FillDataSet(CommandType.Text, SQLString, ds, cmdParms); //填充数据集
return ds;
}
}
#endregion #region ExecuteScalar
/// <summary>
/// 在指定的连接上用指定的参数执行SQL命令
/// </summary>
/// <param name="connectionString">连接字符串</param>
/// <param name="commandType">命令类型(存储过程、文本等等)</param>
/// <param name="commandText">存储过程名或T-SQL语句</param>
/// <param name="commandParameters">命令的参数</param>
/// <returns>返回一个单值</returns>
public static object ExecuteScalar(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
if (connectionString == null || connectionString.Length == )
throw new ArgumentNullException("connectionString");
if (commandText == null || commandText.Length == )
throw new ArgumentNullException("commandText"); using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open(); SqlCommand command = new SqlCommand();
PrepareCommand(command, connection, commandType, commandText, commandParameters);
object obj = command.ExecuteScalar();
connection.Close();
//connection.Dispose();
return obj;
}
}
#endregion #region FillDataSet
/// <summary>
/// 填充数据集
/// </summary>
/// <param name="commandType">命令类型(存储过程、文本等等)</param>
/// <param name="commandText">存储过程名或T-SQL语句</param>
/// <param name="dataSet">要填充的数据集</param>
/// <param name="tableNames">数据集中的表名</param>
/// <param name="commandParameters">命令的参数</param>
public static void FillDataSet(CommandType commandType,
string commandText, DataSet dataSet, params SqlParameter[] commandParameters)
{
if (connectionString == null || connectionString.Length == )
throw new ArgumentNullException("connectionString");
if (commandText == null || commandText.Length == )
throw new ArgumentNullException("commandText");
if (dataSet == null)
throw new ArgumentNullException("dataSet"); using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open(); SqlCommand command = new SqlCommand();
PrepareCommand(command, connection, commandType, commandText, commandParameters); SqlDataAdapter da = new SqlDataAdapter(command);
da.Fill(dataSet);
connection.Close();
//connection.Dispose();
}
}
#endregion #region UpdateDataSet
/// <summary>
/// 更新数据集
/// </summary>
/// <param name="insertCommand">插入命令对象</param>
/// <param name="deleteCommand">删除命令对象</param>
/// <param name="updateCommand">更新命令对象</param>
/// <param name="dataSet">用作更新数据源的数据集</param>
/// <param name="tableName">用作更新数据源的数据表</param>
public static void UpdateDataSet(SqlCommand insertCommand, SqlCommand deleteCommand,
SqlCommand updateCommand, DataSet dataSet, string tableName)
{
if (insertCommand == null) throw new ArgumentNullException("insertCommand");
if (deleteCommand == null) throw new ArgumentNullException("deleteCommand");
if (updateCommand == null) throw new ArgumentNullException("updateCommand");
if (tableName == null || tableName.Length == ) throw new ArgumentNullException("tableName"); using (SqlDataAdapter dataAdapter = new SqlDataAdapter())
{
dataAdapter.UpdateCommand = updateCommand;
dataAdapter.InsertCommand = insertCommand;
dataAdapter.DeleteCommand = deleteCommand; dataAdapter.Update(dataSet, tableName); dataSet.AcceptChanges();
}
}
#endregion #region PrepareCommand
/// <summary>
/// 设置Command对象的属性
/// </summary>
/// <param name="command">命令对象</param>
/// <param name="connection">连接对象</param>
/// <param name="commandType">命令类型(存储过程、文本等等)</param>
/// <param name="commandText">存储过程名或T-SQL语句</param>
/// <param name="commandParameters">命令的参数</param>
private static void PrepareCommand(SqlCommand command, SqlConnection connection, CommandType commandType, string commandText, SqlParameter[] commandParameters)
{
if (command == null)
throw new ArgumentNullException("command");
if (connection == null)
throw new ArgumentNullException("connection");
if (commandText == null || commandText.Length == )
throw new ArgumentNullException("commandText"); command.Connection = connection;
command.CommandType = commandType;
command.CommandText = commandText;
if (commandParameters != null)
foreach (SqlParameter para in commandParameters)
command.Parameters.Add(para);
}
#endregion #region ExeDelSqlTransaction
/// <summary>
/// 执行事务
/// </summary>
/// <param name="commandType"></param>
/// <param name="paramsWhere">条件</param>
/// <param name="sqlCommands">sql语句</param>
public static bool ExeSqlTransaction(CommandType commandType, string sqlCommands, params SqlParameter[] paramsWhere)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlTransaction st = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = commandType;
cmd.Connection = conn;
cmd.Transaction = st;
try
{
cmd.CommandText = sqlCommands;
if (paramsWhere != null)
foreach (SqlParameter parameter in paramsWhere)
{
cmd.Parameters.Add(parameter);
}
cmd.ExecuteNonQuery();
st.Commit(); //提交事务
return true;
}
catch
{
st.Rollback(); //回滚事务
return false;
}
}
}
#endregion #region MD5加密
/// <summary>
/// MD5加密
/// </summary>
/// <param name="md5Str"></param>
/// <returns></returns>
public static string GetMD5(string md5Str)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(md5Str, "MD5");
}
#endregion
#endregion
}
}
ADO.NET工具类(二)的更多相关文章
- java工具类(二)之java正则表达式表单验证
java正则表达式表单验证类工具类(验证邮箱.手机号码.qq号码等) 这篇文章主要介绍了java使用正则表达式进行表单验证工具类,可以验证邮箱.手机号码.qq号码等方法,需要的朋友可以参考下. jav ...
- Java学习笔记49(DBUtils工具类二)
上一篇文章是我们自己模拟的DBUtils工具类,其实有开发好的工具类 这里使用commons-dbutils-1.6.jar 事务的简单介绍: 在数据库中应用事务处理案例:转账案例 张三和李四都有有自 ...
- JDK1.8 LocalDate 使用方式;LocalDate 封装Util,LocalDate工具类(二)
未完待续 ........ java.time.*代替方案 1.Instant 代替 Date2.LocalDateTime 代替 Calendar3.DateTimeFormatter 代替 Sim ...
- ADO.NET工具类(三)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- ADO.NET工具类(一)
using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; usin ...
- 并发编程常用工具类(二) SymaPhore实现线程池
1.symaPhore简介 symaphore(信号量)用来控制同时访问某个资源的线程数量,一般用在并发流量控制.个人对它的理解相当于是接待室每次只能接待固定数量的人,当达到最高接待数的时候,其他人就 ...
- 自定义的jdbc连接工具类JDBCUtils【java 工具类】
JDBCUtils 类设计: 1. 创建私有的属性*(连接数据库必要的四个变量):dreiver url user password 2. 将构造函数私有化 3.将注册驱动写入静态代码块 4.外界只能 ...
- Collections集合工具类
一.Collection与Collections Collection 是所有单列集合的根接口 Collection 是操作集合的工具类 二.Collections中常见的方法:(大都是static方 ...
- 图片压缩java工具类
package com.net.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.Fil ...
随机推荐
- Python脱产8期 Day12 2019/4/26
一 函数默认值的细节 1.如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 例: a = 100def fn(num=a): print(num) # 100a = ...
- Mybatis学习总结(九)——查询缓存
一.什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能.mybaits提供一级缓存和二级缓存. 1.一级缓存是sqlSession级别的缓存.在操作数据库时需要构造sqlSe ...
- python:面向对象编程之Zope.interface安装使用
持续学习python+django中... 一.接口简述 在我们所熟知的面向对象编程语言中,大多提供了接口(interface)的概念.接口在编程语言中指的是一个抽象类型,是抽象方法的集合:它的特点如 ...
- linux配置PS1
自己常用的格式: vi ~/.bashrc export PS1="\[\e[31;1m\]\u@\[\e[34;1m\]\h \[\e[36;1m\]\W $\[\e[37;1m\] &q ...
- FineUIMvc v1.4.0 发布了(ASP.NET MVC控件库)!
FineUIMvc v1.4.0 已经于 2017-06-30 发布,FineUIMvc 是基于 jQuery 的专业 ASP.NET MVC 控件库,是我们的新产品.由于和 FineUI(专业版)共 ...
- Spring Boot WebSocket从入门到放弃
在构建Spring boot项目时已经提供webSocket依赖的勾选.webSocket是TCP之上的一个非常薄的轻量级层 ,webSocket主要的应用场景离不开即时通讯与消息推送,但只要应用程序 ...
- 深入理解Redis高可用方案-Sentinel
Redis Sentinel是Redis的高可用方案.是Redis 2.8中正式引入的. 在之前的主从复制方案中,如果主节点出现问题,需要手动将一个从节点升级为主节点,然后将其它从节点指向新的主节点, ...
- PV、UV、IP、TPS、QPS、RPS、两天、吞吐量、 并发用户数 术语
跟网站打交道,经常可以听到数据分析之类的专有名词,如pv多少.ip多少.tps多少之类的问题.下面就这些常见的数据给出其释义. PV 即 page view,页面浏览量 用户每一次 ...
- 十二、存token获取token刷新token发送header头
//测试token //获取token function setToken(data){ var storage = window.localStorage; if(!storage){ alert( ...
- Python_%---format_43
fat39 博客园 首页 新随笔 联系 订阅 管理 随笔 - 142 文章 - 0 评论 - 0 python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用 ...