SqlHelper代码全.docx
- 文档编号:25283200
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:24
- 大小:19.65KB
SqlHelper代码全.docx
《SqlHelper代码全.docx》由会员分享,可在线阅读,更多相关《SqlHelper代码全.docx(24页珍藏版)》请在冰豆网上搜索。
SqlHelper代码全
//SqlHelper.cs文件
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Collections;
using;
usingSystem.Reflection;
//using;
namespace
{
///
///数据库的通用访问代码
///此类为抽象类,不允许实例化,在应用时直接调用即可
///
publicabstractclassSqlHelper
{
#regionConst
///
///DB连接串
///
privateconststringXPATH_CONNECTION_STRING="SQLDBCon";
#endregion
//获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改
//publicstaticreadonlystringConnectionString=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
publicstaticreadonlystringConnectionString=;
//哈希表用来存储缓存的参数信息,哈希表可以存储任意类型的参数。
privatestaticHashtableparmCache=Hashtable.Synchronized(newHashtable());
///
///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。
///使用参数数组形式提供参数列表
///
///
///使用示例:
///intresult=ExecuteNonQuery(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///
///
)
///
///
///
publicstaticintExecuteNonQuery(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
using(SqlConnectionconn=newSqlConnection(connectionString))
{
//通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中
PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);
intval=cmd.ExecuteNonQuery();
//清空SqlCommand中的参数列表
;
returnval;
}
}
///
///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库连接
///使用参数数组提供参数
///
///
///使用示例:
///intresult=ExecuteNonQuery(conn,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///
///
)
///
///
///
publicstaticintExecuteNonQuery(SqlConnectionconnection,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);
intval=cmd.ExecuteNonQuery();
;
returnval;
}
///
///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库事物处理
///使用参数数组提供参数
///
///
///使用示例:
///intresult=ExecuteNonQuery(trans,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///
///
)
///
///
///
///SqlTransactiontrans
publicstaticintExecuteNonQuery(SqlTransactiontrans,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,commandParameters);
//insert
//insert
//intdds=SqlHelper.ExecuteNonQuery(trans.Connection,CommandType.Text,sb.ToString(),null);
intval=cmd.ExecuteNonQuery();
;
returnval;
}
///
///执行一条返回结果集的SqlCommand命令,通过专用的连接字符串。
///使用参数数组提供参数
///
///
///使用示例:
///SqlDataReaderr=ExecuteReader(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///
///
)
///
///
///
publicstaticSqlDataReaderExecuteReader(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
SqlConnectionconn=newSqlConnection(connectionString);
//在这里使用try/catch处理是因为如果方法出现异常,则SqlDataReader就不存在,
//CommandBehavior.CloseConnection的语句就不会执行,触发的异常由catch捕获。
//关闭数据库连接,并通过throw再次引发捕捉到的异常。
try
{
PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);
SqlDataReaderrdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
;
returnrdr;
}
catch
{
conn.Close();
throw;
}
}
///
///执行一条返回结果集的SqlCommand命令,通过专用的连接字符串。
///使用参数数组提供参数
///
///
///使用示例:
///SqlDataReaderr=ExecuteReader(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///
///
)
///
///
///
publicstaticDataTableExecuteReaderToDataTable(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
returnConvertDataReaderToDataTable(ExecuteReader(connectionString,cmdType,cmdText,commandParameters));
}
///
///
///
///
///
///
///
///
///查数据用
publicstaticDataSetExecuteDataset(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
//createacommandandprepareitforexecution
SqlCommandcmd=newSqlCommand();
SqlConnectionconn=newSqlConnection(connectionString);
PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);
//createtheDataAdapter&DataSet
SqlDataAdapterda=newSqlDataAdapter(cmd);
DataSetds=newDataSet();
//filltheDataSetusingdefaultvaluesforDataTablenames,etc.
da.Fill(ds);
da.Dispose();
//detachtheOracleParametersfromthecommandobject,sotheycanbeusedagain.
;
cmd.Dispose();
//returnthedataset
returnds;
}
///
///执行SQL语句,返回影响的记录数
///
///
///
publicstaticintExecuteSql(stringSQLString,paramsSqlParameter[]cmdParms)
{
using(SqlConnectionconnection=newSqlConnection(ConnectionString))
{
using(SqlCommandcmd=newSqlCommand())
{
try
{
PrepareCommand(cmd,connection,null,CommandType.Text,SQLString,cmdParms);
introws=cmd.ExecuteNonQuery();
;
returnrows;
}
catch(e)
{
throwe;
}
}
}
}
///
///执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串。
///使用参数数组提供参数
///
///
///使用示例:
///Objectobj=ExecuteScalar(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///
///
)
///
///
///
publicstaticobjectExecuteScalar(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
using(SqlConnectionconnection=newSqlConnection(connectionString))
{
PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);
objectval=cmd.ExecuteScalar();
;
returnval;
}
}
///
///执行一条返回第一条记录第一列的SqlCommand命令,通过已经存在的数据库连接。
///使用参数数组提供参数
///
///
///使用示例:
///Objectobj=ExecuteScalar(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///
///
)
///
///
///
publicstaticobjectExecuteScalar(SqlConnectionconnection,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);
objectval=cmd.ExecuteScalar();
;
returnval;
}
///
///缓存参数数组
///
///
///
publicstaticvoidCacheParameters(stringcacheKey,paramsSqlParameter[]commandParameters)
{
parmCache[cacheKey]=commandParameters;
}
///
///获取被缓存的参数
///
///
///
publicstaticSqlParameter[]GetCachedParameters(stringcacheKey)
{
SqlParameter[]cachedParms=(SqlParameter[])parmCache[cacheKey];
if(cachedParms==null)
returnnull;
//新建一个参数的克隆列表
SqlParameter[]clonedParms=newSqlParameter[cachedParms.Length];
//通过循环为克隆参数列表赋值
for(inti=0,j=cachedParms.Length;i //使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SqlHelper 代码