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

本文共 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

你可能感兴趣的文章
《Android艺术开发探索》学习笔记之View的工作原理
查看>>
[译] Story 中 Type Mode 在 iOS 和 Android 上的实现
查看>>
数据结构与算法-表达式二叉树
查看>>
JavaSE基础:字符串
查看>>
iOS开发 __func__的使用
查看>>
iOS开发 使用fui(Find Unused Imports)扫描工程中不用的类
查看>>
Android组件化专题-路由动态注入跳转参数以及获取其他模块的fragment
查看>>
JavaScript中的执行机制
查看>>
WWDC2017-Customized Loading in WKWebView
查看>>
今天我才学会iOS的MVP写法
查看>>
Vue.js项目中管理每个页面的头部标签的方法
查看>>
function-表达式(内含自执行函数)
查看>>
2.字符串
查看>>
用Python从Unicode转换到中文并输出到文件
查看>>
Python爬虫之旅之Selenium库的使用
查看>>
『中级篇』Docker的收费模式(53)
查看>>
上传本地项目到远程仓库
查看>>
手写Android网络框架——CatHttp(一)
查看>>
【Python实战】用Scrapyd把Scrapy爬虫一步一步部署到腾讯云上,有彩蛋
查看>>
java架构-一些设计上的基本常识
查看>>