博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#之SqlHelper
阅读量:6413 次
发布时间:2019-06-23

本文共 5493 字,大约阅读时间需要 18 分钟。

 

using System;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Collections;namespace MyTest.common{    public abstract class SqlHelper    {        public static readonly string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;                private static Hashtable m_ParmCache = Hashtable.Synchronized(new Hashtable());                ///         /// depiction:SQL执行无返回结果的操作        ///         /// 
<数据库链接串>
///
<执行sql或存储过程 commandtype.text|commandtype.storedprocedure>
///
<执行sql或存储过程名称>
///
<参数集>
///
///
<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>
///
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } } ///
/// depiction:SQL执行无返回结果的操作 /// ///
<数据库连接>
///
<执行sql或存储过程 commandtype.text|commandtype.storedprocedure>
///
<执行sql或存储过程名称>
///
<参数集>
///
///
<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>
///
public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } ///
/// depiction:SQL执行无返回结果的操作(存在事务操作) /// ///
<事务>
///
<执行sql或存储过程 commandtype.text|commandtype.storedprocedure>
///
<执行sql或存储过程名称>
///
<参数集>
///
///
<对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>
///
public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } ///
/// depiction:SQL执行返回返回数据集SqlDataReader /// ///
<数据库连接串>
///
<执行sql或存储过程 commandtype.text|commandtype.storedprocedure>
///
<执行sql或存储过程名称>
///
<参数集>
///
///
<返回数据集sqldatareader>
///
public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(connectionString); try { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return rdr; } catch { conn.Close(); throw; } } ///
/// depiction:SQL执行返回值 /// ///
<数据库连接串>
///
<执行sql或存储过程 commandtype.text|commandtype.storedprocedure>
///
<执行sql或存储过程名称>
///
<参数集>
///
///
<返回数据集sqldatareader>
///
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnection(connectionString)) { PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; } } ///
/// depiction:SQL执行返回值 /// ///
<数据库连接>
///
<执行sql或存储过程 commandtype.text|commandtype.storedprocedure>
///
<执行sql或存储过程名称>
///
<参数集>
///
///
<返回sql执行结果>
///
public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; } public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters) { m_ParmCache[cacheKey] = commandParameters; } ///
/// depiction:SQL执行返回DataTable /// ///
<数据库连接串>
///
<执行sql或存储过程 commandtype.text|commandtype.storedprocedure>
///
<执行sql或存储过程名称>
///
<参数集>
///
///
<返回数据集datatable>
///
public static DataTable GetTable(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { DataTable dt = new DataTable(); SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; da.Fill(dt); } return dt; } ///
/// depiction:SQL执行返回DataSet /// ///
<数据库连接串>
///
<执行sql或存储过程 commandtype.text|commandtype.storedprocedure>
///
<执行sql或存储过程名称>
///
<参数集>
///
///
<返回数据集dataset>
///
public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { DataSet ds = new DataSet(); SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connectionString)) { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; da.Fill(ds); } return ds; } public static SqlParameter[] GetCachedParameters(string cacheKey) { SqlParameter[] cachedParms = (SqlParameter[])m_ParmCache[cacheKey]; if (cachedParms == null) return null; SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length]; for (int i = 0, j = cachedParms.Length; i < j; i++) clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone(); return clonedParms; } private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) { foreach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); } } public static string ConnStr1 { get; set; } }}

 

转载于:https://www.cnblogs.com/zengnansheng/p/10389356.html

你可能感兴趣的文章
Google Test and Google Mock Introduction
查看>>
linux的文件系统
查看>>
上云利器,K8S应用编排设计器之快到极致
查看>>
袋鼠云服务案例系列 | 从DB2到MySQL,某传统金融平台的互联网转型之路
查看>>
RealServer配置脚本
查看>>
九月份技术指标 华为交换机的简单配置
查看>>
马哥linux作业--第八周
查看>>
dubbo01
查看>>
python 写json格式字符串到文件
查看>>
QXORM 使用记录 ( 二 )
查看>>
分布式文件系统MogileFS
查看>>
电力线通信载波模块
查看>>
linux vim详解
查看>>
Java23种设计模式案例:策略模式(strategy)
查看>>
XML解析之DOM4J
查看>>
图解微服务架构演进
查看>>
SQL PATINDEX 详解
查看>>
一些常用的网络命令
查看>>
CSP -- 运营商内容劫持(广告)的终结者
查看>>
DIV+CSS命名规范有助于SEO
查看>>