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 的全局变量
结论: Python 的全局变量只在本文件中生效. 定义全局变量的文件 G.py # define some global variable A = 1 B = 2 C = 3 def fuck(a= ...
- Mybatis学习总结(八)——延迟加载
一.什么是延迟加载 resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: ...
- 拉格朗日乘子法(Lagrange Multiplier)和KKT条件
拉格朗日乘子法:对于等式约束的优化问题,求取最优值. KKT条件:对于含有不等式约束的优化问题,求取最优值. 最优化问题分类: (1)无约束优化问题: 常常使用Fermat定理,即求取的导数,然后令其 ...
- 图解Redis之数据结构篇——简单动态字符串SDS
图解Redis之数据结构篇--简单动态字符串SDS 前言 相信用过Redis的人都知道,Redis提供了一个逻辑上的对象系统构建了一个键值对数据库以供客户端用户使用.这个对象系统包括字符串对象 ...
- Java和.NET(C#)的开发用到的技术对比总结
前言 声明:我指的是一般的Java和.NET(C#)的后台开发用到的技术总结 最近一直在应聘ing,楼主的项目还是.NET(C#)项目居多,Java项目相对少,在这也吐槽下,招.NET(C#)的公司实 ...
- JS判断当前设备是 PC IOS Andriod
JS判断当前设备是 PC IOS Andriod <script > window.onload = function(){ var isPc = IsPC(); var isAndroi ...
- [原创]Sharding-Sphere之Proxy初探
大家好,拓海(https://github.com/tuohai666)今天为大家分享Sharding-Sphere推出的重磅产品:Sharding-Proxy!在之前闪亮登场的Sharding-Sp ...
- OSGI 环境搭建
第一步,打开eclipse,新建一个plugin工程,如下图所示 第二步,输入工程的名字,并且在Target Platform中选择an OSGI framework中选中standard,如下图所示 ...
- HTTP请求中的Keep-Alive模式,是怎么区分多个请求的?
Keep-Alive模式 我们都知道HTTP是基于TCP的,每一个HTTP请求都需要进行三步握手.如果一个页面对某一个域名有多个请求,就会进行频繁的建立连接和断开连接.所以HTTP 1.0中出现了Co ...
- linus 下redis守护进程启动
修改配置文件 sudo vim /usr/src/redis/redis.conf // 具体的安装目录不一样,以安装的时候为准 # 将daemonize 改为yes daemonize yes 重新 ...