zoukankan
html css js c++ java
sqlHelper
using
System;
using
System.Configuration;
using
System.Data;
using
System.Data.SqlClient;
using
System.Collections;
/**/
///
<summary>
///
The SqlHelper class is intended to encapsulate high performance,
///
scalable best practices for common uses of SqlClient.
///
</summary>
public
abstract
class
SqlHelper
...
{
//
Database connection strings
public
static
readonly
string
strConnection
=
ConfigurationManager.ConnectionStrings[
"
ConnectionString1
"
].ConnectionString;
//
public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString2"].ConnectionString;
//
public static readonly string ConnectionStringOrderDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString3"].ConnectionString;
//
public static readonly string ConnectionStringProfile = ConfigurationManager.ConnectionStrings["SQLProfileConnString"].ConnectionString;
//
Hashtable to store cached parameters
private
static
Hashtable parmCache
=
Hashtable.Synchronized(
new
Hashtable());
ExecuteNonQuery
#region
ExecuteNonQuery
/**/
///
<summary>
///
Execute a SqlCommand (that returns no resultset) against the database specified in the connection string
///
using the provided parameters.
///
</summary>
///
<remarks>
///
e.g.:
///
int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
///
</remarks>
///
<param name="connectionString">
a valid connection string for a SqlConnection
</param>
///
<param name="commandType">
the CommandType (stored procedure, text, etc.)
</param>
///
<param name="commandText">
the stored procedure name or T-SQL command
</param>
///
<param name="commandParameters">
an array of SqlParamters used to execute the command
</param>
///
<returns>
an int representing the number of rows affected by the command
</returns>
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;
}
}
/**/
///
<summary>
///
使用默认连接
///
</summary>
///
<param name="cmdType">
命令文本类型
</param>
///
<param name="cmdText">
命令文本
</param>
///
<param name="commandParameters">
参数集
</param>
///
<returns>
int
</returns>
public
static
int
ExecuteNonQuery(CommandType cmdType,
string
cmdText,
params
SqlParameter[] commandParameters)
...
{
SqlCommand cmd
=
new
SqlCommand();
using
(SqlConnection conn
=
new
SqlConnection(strConnection))
...
{
PrepareCommand(cmd, conn,
null
, cmdType, cmdText, commandParameters);
int
val
=
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return
val;
}
}
/**/
///
<summary>
///
使用默认连接,CommandType默认为StoredProcedure
///
</summary>
///
<param name="cmdText">
存储过程名
</param>
///
<param name="commandParameters">
参数集
</param>
///
<returns>
int
</returns>
public
static
int
ExecuteNonQuery(
string
cmdText,
params
SqlParameter[] commandParameters)
...
{
SqlCommand cmd
=
new
SqlCommand();
using
(SqlConnection conn
=
new
SqlConnection(strConnection))
...
{
PrepareCommand(cmd, conn,
null
, CommandType.StoredProcedure,cmdText, commandParameters);
int
val
=
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return
val;
}
}
/**/
///
<summary>
///
Execute a SqlCommand (that returns no resultset) against an existing database connection
///
using the provided parameters.
///
</summary>
///
<remarks>
///
e.g.:
///
int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
///
</remarks>
///
<param name="conn">
an existing database connection
</param>
///
<param name="commandType">
the CommandType (stored procedure, text, etc.)
</param>
///
<param name="commandText">
the stored procedure name or T-SQL command
</param>
///
<param name="commandParameters">
an array of SqlParamters used to execute the command
</param>
///
<returns>
an int representing the number of rows affected by the command
</returns>
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;
}
/**/
///
<summary>
///
Execute a SqlCommand (that returns no resultset) using an existing SQL Transaction
///
using the provided parameters.
///
</summary>
///
<remarks>
///
e.g.:
///
int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
///
</remarks>
///
<param name="trans">
an existing sql transaction
</param>
///
<param name="commandType">
the CommandType (stored procedure, text, etc.)
</param>
///
<param name="commandText">
the stored procedure name or T-SQL command
</param>
///
<param name="commandParameters">
an array of SqlParamters used to execute the command
</param>
///
<returns>
an int representing the number of rows affected by the command
</returns>
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;
}
/**/
///
<summary>
///
Execute a SqlCommand that returns a resultset against the database specified in the connection string
///
using the provided parameters.
///
</summary>
///
<remarks>
///
e.g.:
///
SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
///
</remarks>
///
<param name="connectionString">
a valid connection string for a SqlConnection
</param>
///
<param name="commandType">
the CommandType (stored procedure, text, etc.)
</param>
///
<param name="commandText">
the stored procedure name or T-SQL command
</param>
///
<param name="commandParameters">
an array of SqlParamters used to execute the command
</param>
///
<returns>
A SqlDataReader containing the results
</returns>
#endregion
ExecuteReader
#region
ExecuteReader
public
static
SqlDataReader ExecuteReader(
string
connectionString, CommandType cmdType,
string
cmdText,
params
SqlParameter[] commandParameters)
...
{
SqlCommand cmd
=
new
SqlCommand();
SqlConnection conn
=
new
SqlConnection(connectionString);
//
we use a try/catch here because if the method throws an exception we want to
//
close the connection throw code, because no datareader will exist, hence the
//
commandBehaviour.CloseConnection will not work
try
...
{
PrepareCommand(cmd, conn,
null
, cmdType, cmdText, commandParameters);
SqlDataReader rdr
=
cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return
rdr;
}
catch
...
{
conn.Close();
throw
;
}
}
/**/
///
<summary>
///
使用默认连接
///
</summary>
///
<param name="cmdType">
命令文本类型
</param>
///
<param name="cmdText">
命令文本
</param>
///
<param name="commandParameters">
参数集
</param>
///
<returns>
SqlDataReader
</returns>
public
static
SqlDataReader ExecuteReader(CommandType cmdType,
string
cmdText,
params
SqlParameter[] commandParameters)
...
{
SqlCommand cmd
=
new
SqlCommand();
SqlConnection conn
=
new
SqlConnection(strConnection);
//
we use a try/catch here because if the method throws an exception we want to
//
close the connection throw code, because no datareader will exist, hence the
//
commandBehaviour.CloseConnection will not work
try
...
{
PrepareCommand(cmd, conn,
null
, cmdType, cmdText, commandParameters);
SqlDataReader rdr
=
cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return
rdr;
}
catch
...
{
conn.Close();
throw
;
}
}
/**/
///
<summary>
///
使用默认连接,CommandType默认为StoredProcedure
///
</summary>
///
<param name="cmdText">
存储过程名
</param>
///
<param name="commandParameters">
参数集
</param>
///
<returns>
SqlDataReader
</returns>
public
static
SqlDataReader ExecuteReader(
string
cmdText,
params
SqlParameter[] commandParameters)
...
{
SqlCommand cmd
=
new
SqlCommand();
SqlConnection conn
=
new
SqlConnection(strConnection);
//
we use a try/catch here because if the method throws an exception we want to
//
close the connection throw code, because no datareader will exist, hence the
//
commandBehaviour.CloseConnection will not work
try
...
{
PrepareCommand(cmd, conn,
null
, CommandType.StoredProcedure, cmdText, commandParameters);
SqlDataReader rdr
=
cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return
rdr;
}
catch
...
{
conn.Close();
throw
;
}
}
#endregion
ExecuteScalar
#region
ExecuteScalar
/**/
///
<summary>
///
Execute a SqlCommand that returns the first column of the first record against the database specified in the connection string
///
using the provided parameters.
///
</summary>
///
<remarks>
///
e.g.:
///
Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
///
</remarks>
///
<param name="connectionString">
a valid connection string for a SqlConnection
</param>
///
<param name="commandType">
the CommandType (stored procedure, text, etc.)
</param>
///
<param name="commandText">
the stored procedure name or T-SQL command
</param>
///
<param name="commandParameters">
an array of SqlParamters used to execute the command
</param>
///
<returns>
An object that should be converted to the expected type using Convert.To{Type}
</returns>
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;
}
}
/**/
///
<summary>
///
使用定义好的连接字符串
///
</summary>
///
<param name="cmdType">
命令文本类型
</param>
///
<param name="cmdText">
命令文本
</param>
///
<param name="commandParameters">
参数集
</param>
///
<returns>
object
</returns>
public
static
object
ExecuteScalar(CommandType cmdType,
string
cmdText,
params
SqlParameter[] commandParameters)
...
{
SqlCommand cmd
=
new
SqlCommand();
using
(SqlConnection connection
=
new
SqlConnection(strConnection))
...
{
PrepareCommand(cmd, connection,
null
, cmdType, cmdText, commandParameters);
object
val
=
cmd.ExecuteScalar();
cmd.Parameters.Clear();
return
val;
}
}
/**/
///
<summary>
///
使用定义好的连接字符串,CommandType默认为StoredProcedure
///
</summary>
///
<param name="cmdText">
存储过程名
</param>
///
<param name="commandParameters">
参数集
</param>
///
<returns>
object
</returns>
public
static
object
ExecuteScalar(
string
cmdText,
params
SqlParameter[] commandParameters)
...
{
SqlCommand cmd
=
new
SqlCommand();
using
(SqlConnection connection
=
new
SqlConnection(strConnection))
...
{
PrepareCommand(cmd, connection,
null
, CommandType.StoredProcedure, cmdText, commandParameters);
object
val
=
cmd.ExecuteScalar();
cmd.Parameters.Clear();
return
val;
}
}
/**/
///
<summary>
///
Execute a SqlCommand that returns the first column of the first record against an existing database connection
///
using the provided parameters.
///
</summary>
///
<remarks>
///
e.g.:
///
Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
///
</remarks>
///
<param name="conn">
an existing database connection
</param>
///
<param name="commandType">
the CommandType (stored procedure, text, etc.)
</param>
///
<param name="commandText">
the stored procedure name or T-SQL command
</param>
///
<param name="commandParameters">
an array of SqlParamters used to execute the command
</param>
///
<returns>
An object that should be converted to the expected type using Convert.To{Type}
</returns>
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;
}
#endregion
ExecuteDataSet
#region
ExecuteDataSet
/**/
///
<summary>
///
返加dataset
///
</summary>
///
<param name="connectionString">
连接字符串
</param>
///
<param name="cmdType">
命令类型,如StoredProcedure,Text
</param>
///
<param name="cmdText">
the stored procedure name or T-SQL command
</param>
///
<returns>
DataSet
</returns>
public
static
DataSet ExecuteDataSet(
string
connectionString, CommandType cmdType,
string
cmdText)
...
{
SqlConnection SqlDataConn
=
new
SqlConnection(connectionString);
SqlCommand SqlComm
=
new
SqlCommand(cmdText, SqlDataConn);
SqlComm.CommandType
=
cmdType;
SqlDataAdapter SqlDA
=
new
SqlDataAdapter(SqlComm);
DataSet DS
=
new
DataSet();
SqlDA.Fill(DS);
return
DS;
}
/**/
///
<summary>
///
使用定义好的连接字符串
///
</summary>
///
<param name="cmdType">
命令文本类型
</param>
///
<param name="cmdText">
命令文本
</param>
///
<returns>
DataSet
</returns>
public
static
DataSet ExecuteDataSet(CommandType cmdType,
string
cmdText)
...
{
SqlConnection SqlDataConn
=
new
SqlConnection(strConnection);
SqlCommand SqlComm
=
new
SqlCommand(cmdText, SqlDataConn);
SqlComm.CommandType
=
cmdType;
SqlDataAdapter SqlDA
=
new
SqlDataAdapter(SqlComm);
DataSet DS
=
new
DataSet();
SqlDA.Fill(DS);
return
DS;
}
/**/
///
<summary>
///
使用定义好的连接字符串,CommandType默认为StoredProcedure
///
</summary>
///
<param name="cmdText">
存储过程名
</param>
///
<returns>
object
</returns>
public
static
DataSet ExecuteDataSet(
string
cmdText)
...
{
SqlConnection SqlDataConn
=
new
SqlConnection(strConnection);
SqlCommand SqlComm
=
new
SqlCommand(cmdText, SqlDataConn);
SqlComm.CommandType
=
CommandType.StoredProcedure;
SqlDataAdapter SqlDA
=
new
SqlDataAdapter(SqlComm);
DataSet DS
=
new
DataSet();
SqlDA.Fill(DS);
return
DS;
}
/**/
///
<summary>
///
返加dataset
///
</summary>
///
<param name="connectionString">
连接字符串
</param>
///
<param name="cmdType">
命令类型,如StoredProcedure,Text
</param>
///
<param name="cmdText">
the stored procedure name or T-SQL command
</param>
///
<param name="SQLparams">
参数集
</param>
///
<returns>
DataSet
</returns>
public
static
DataSet ExecuteDataSet(
string
connectionString, CommandType cmdType,
string
cmdText,
params
SqlParameter[] SQLparams)
...
{
SqlConnection SqlDataConn
=
new
SqlConnection(connectionString);
SqlCommand SqlComm
=
AddSqlParas(SQLparams, cmdText, cmdType, SqlDataConn);
SqlDataAdapter SqlDA
=
new
SqlDataAdapter(SqlComm);
DataSet DS
=
new
DataSet();
SqlDA.Fill(DS);
return
DS;
}
public
static
DataSet ExecuteDataSet( CommandType cmdType,
string
cmdText,
params
SqlParameter[] SQLparams)
...
{
SqlConnection SqlDataConn
=
new
SqlConnection(strConnection);
SqlCommand SqlComm
=
AddSqlParas(SQLparams, cmdText, cmdType, SqlDataConn);
SqlDataAdapter SqlDA
=
new
SqlDataAdapter(SqlComm);
DataSet DS
=
new
DataSet();
SqlDA.Fill(DS);
return
DS;
}
/**/
///
<summary>
///
使用定义好的连接字符串,CommandType默认为StoredProcedure
///
</summary>
///
<param name="cmdText">
存储过程名
</param>
///
<param name="commandParameters">
参数集
</param>
///
<returns>
DataSet
</returns>
public
static
DataSet ExecuteDataSet(
string
cmdText,
params
SqlParameter[] SQLparams)
...
{
SqlConnection SqlDataConn
=
new
SqlConnection(strConnection);
SqlCommand SqlComm
=
AddSqlParas(SQLparams,cmdText,CommandType.StoredProcedure, SqlDataConn);
SqlDataAdapter SqlDA
=
new
SqlDataAdapter(SqlComm);
DataSet DS
=
new
DataSet();
SqlDA.Fill(DS);
return
DS;
}
#endregion
CacheParameters
#region
CacheParameters
/**/
///
<summary>
///
add parameter array to the cache
///
</summary>
///
<param name="cacheKey">
Key to the parameter cache
</param>
///
<param name="cmdParms">
an array of SqlParamters to be cached
</param>
public
static
void
CacheParameters(
string
cacheKey,
params
SqlParameter[] commandParameters)
...
{
parmCache[cacheKey]
=
commandParameters;
}
#endregion
GetCachedParameters
#region
GetCachedParameters
/**/
///
<summary>
///
Retrieve cached parameters
///
</summary>
///
<param name="cacheKey">
key used to lookup parameters
</param>
///
<returns>
Cached SqlParamters array
</returns>
public
static
SqlParameter[] GetCachedParameters(
string
cacheKey)
...
{
SqlParameter[] cachedParms
=
(SqlParameter[])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;
}
#endregion
PrepareCommand
#region
PrepareCommand
/**/
///
<summary>
///
Prepare a command for execution
///
</summary>
///
<param name="cmd">
SqlCommand object
</param>
///
<param name="conn">
SqlConnection object
</param>
///
<param name="trans">
SqlTransaction object
</param>
///
<param name="cmdType">
Cmd type e.g. stored procedure or text
</param>
///
<param name="cmdText">
Command text, e.g. Select * from Products
</param>
///
<param name="cmdParms">
SqlParameters to use in the command
</param>
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);
}
}
#endregion
AddSqlParas
#region
AddSqlParas
/**/
///
<summary>
///
获得一个完整的Command
///
</summary>
///
<param name="SqlParas">
SQL的参数数组
</param>
///
<param name="CommandText">
命令文本
</param>
///
<param name="IsStoredProcedure">
命令文本是否是存储过程
</param>
///
<param name="SqlDataConn">
数据连接
</param>
///
<returns></returns>
private
static
SqlCommand AddSqlParas(SqlParameter[] SqlParas,
string
cmdText, CommandType cmdType, SqlConnection SqlDataConn)
...
{
SqlCommand SqlComm
=
new
SqlCommand(cmdText, SqlDataConn);
SqlComm.CommandType
=
cmdType;
if
(SqlParas
!=
null
)
...
{
foreach
(SqlParameter p
in
SqlParas)
...
{
SqlComm.Parameters.Add(p);
}
}
return
SqlComm;
}
#endregion
}
查看全文
相关阅读:
监听器和过滤器
jdbc电话本项目
jdbc数据库中的增删改
servlet实现登陆注册
Python 数据分析基础小结
分类模型构建
回归模型构建
sklearn——数据集调用及应用
数据处理——数据集划分
数据分析——Matplotlib图形绘制
原文地址:https://www.cnblogs.com/zijinguang/p/1234769.html
最新文章
字符编码
列表、元组、字典、集合类型内置方法
数字类型、字符串类型内置方法
if、while、for循环
python中与用户交互与运算符
Unity Editor Inspector编辑模板
unity回调函数范例
Unity3D使用经验总结 编辑器扩展篇【转】
随记
控制地图显示范围
热门文章
发现了地形混合的一个问题的原因
地形混合shader
矩阵乘法的几何意义
写shader注意的一些报错
面向对象的5大原则
ioc(Inversion of Control)控制反转和DI
小问题
项目问题
ajax和json
El和标准标签
Copyright © 2011-2022 走看看